typeset mag kein "-g"

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
CrimsonKing
Beiträge: 106
Registriert: 30.08.2009 08:08:53
Lizenz eigener Beiträge: Artistic Lizenz

typeset mag kein "-g"

Beitrag von CrimsonKing » 08.01.2010 03:14:46

Da will ich mich mal mit dem command-not-found-Paket beschäftigen, und dann mag das Initscript nicht, weil typeset -g - entgegen sämtlichen mir bekannten Handbüchern - nicht funktioniert. "Ungültige Option". Jemand eine Idee?

System: Debian Squeeze, täglich aktualisiert.

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: typeset mag kein "-g"

Beitrag von Meillo » 08.01.2010 10:24:56

CrimsonKing hat geschrieben:[...] weil typeset -g - entgegen sämtlichen mir bekannten Handbüchern - nicht funktioniert. "Ungültige Option". Jemand eine Idee?

System: Debian Squeeze, täglich aktualisiert.
Welche Handbücher denn? Die Manpage zu bash(1) sagt mir:
typeset [-aAfFilrtux] [-p] [name[=value] ...]
Ebenso die Manpage zu ksh(1):
typeset [ ±ACHSflbnprtux ] [ ±EFLRXZi[n] ] [ -T tname=(assign_list) ] [ -h str ] [ -a [type] ] [ vname[=value ] ] ...
Ich sehe da kein `-g'.

(Hier ebenfalls sid.)
Use ed once in a while!

CrimsonKing
Beiträge: 106
Registriert: 30.08.2009 08:08:53
Lizenz eigener Beiträge: Artistic Lizenz

Re: typeset mag kein "-g"

Beitrag von CrimsonKing » 08.01.2010 17:28:12

Als ich das schrieb, hatte ich gerade irgendein zsh-Handbuch zur Hand, in dem mehrfach die Verwendung von typeset -g erläutert wurde. Finde das jetzt natürlich gerade nicht. Aber wenn die Option in einem Debian-Paket verwendet wird, muss sie doch existieren?

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: typeset mag kein "-g"

Beitrag von Meillo » 08.01.2010 17:45:02

Ja, die zsh kennt -g bei typeset.

Ich habe mir die Sache jetzt mal angeschaut:
$ grep -R 'typeset.*-g' command-not-found-0.2.38/
command-not-found-0.2.38/debian/patches/adjust-paths.diff:- typeset -g cnf_command="${1%% *}"
command-not-found-0.2.38/debian/patches/adjust-paths.diff:+ typeset -g cnf_command="${1%% *}"
command-not-found-0.2.38/debian/patches/adjust-paths.diff: typeset -ga preexec_functions
command-not-found-0.2.38/zsh_command_not_found: typeset -g cnf_command="${1%% *}"
command-not-found-0.2.38/zsh_command_not_found:typeset -ga preexec_functions
command-not-found-0.2.38/zsh_command_not_found:typeset -ga precmd_functions
`typeset -g' kommt nur im zsh-Script vor (die Zeilen im Patch betreffen auch nur das zsh-Script).

Somit sollte das Paket in Ordnung sein. Ich vermute, du hast bei deinen Beschäftigungen mit dem Paket versucht das zsh-Script in einer anderen Shell auszuführen, oder ähnliches.
Use ed once in a while!

CrimsonKing
Beiträge: 106
Registriert: 30.08.2009 08:08:53
Lizenz eigener Beiträge: Artistic Lizenz

Re: typeset mag kein "-g"

Beitrag von CrimsonKing » 08.01.2010 17:54:04

Auch, wenn ich typeset -g in der zsh ausführe, kommt das falsche Ergebnis heraus.

Die zsh ist bei mir die Standardshell, "aus Versehen" in die bash komme ich nicht, das würde ich am Prompt merken.

Bild

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: typeset mag kein "-g"

Beitrag von Meillo » 08.01.2010 18:06:34

CrimsonKing hat geschrieben:Die zsh ist bei mir die Standardshell, "aus Versehen" in die bash komme ich nicht, das würde ich am Prompt merken.
Und ich tippe doch, dass dieser Aufruf nicht von der zsh ausgeführt wurde.

Du rufst das Script direkt auf, normalerweise wird es von dem in der Shebangzeile angebenen Interpreter ausgeführt. Dieses Script hat keine Shebangzeile, deshalb wird es vermutlich von /bin/sh interpretiert. /bin/sh linkt vermutlich auf die bash.

Rufe das Script mal explizit mit der zsh auf:

Code: Alles auswählen

zsh /etc/zsh_command_not_found
Oder was eher der vorgesehenen Nutzung entspricht (denn wenn du es ausführst wird es nichts Merkbares machen), lese es in die aktuelle Shell ein:

Code: Alles auswählen

. /etc/zsh_command_not_found
Use ed once in a while!

CrimsonKing
Beiträge: 106
Registriert: 30.08.2009 08:08:53
Lizenz eigener Beiträge: Artistic Lizenz

Re: typeset mag kein "-g"

Beitrag von CrimsonKing » 08.01.2010 18:18:57

Oha. Scheint, als hättest du Recht. Mit . davor (in der .zshrc) geht es. Verdammt - da hätte ich drauf kommen können. Danke!

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: typeset mag kein "-g"

Beitrag von Meillo » 08.01.2010 20:18:11

Gern geschehen
Use ed once in a while!

chrisbra
Beiträge: 122
Registriert: 19.10.2005 09:36:09
Wohnort: Sachsen-Anhalt
Kontaktdaten:

Re: typeset mag kein "-g"

Beitrag von chrisbra » 09.01.2010 13:18:25

CrimsonKing hat geschrieben:Auch, wenn ich typeset -g in der zsh ausführe, kommt das falsche Ergebnis heraus.

Die zsh ist bei mir die Standardshell, "aus Versehen" in die bash komme ich nicht, das würde ich am Prompt merken.
Das sieht aber nicht nach zsh aus. Was gibt echo $0 aus?
Meine Whishlist
:wq!

CrimsonKing
Beiträge: 106
Registriert: 30.08.2009 08:08:53
Lizenz eigener Beiträge: Artistic Lizenz

Re: typeset mag kein "-g"

Beitrag von CrimsonKing » 09.01.2010 16:42:33

zsh

chrisbra
Beiträge: 122
Registriert: 19.10.2005 09:36:09
Wohnort: Sachsen-Anhalt
Kontaktdaten:

Re: typeset mag kein "-g"

Beitrag von chrisbra » 09.01.2010 20:45:32

CrimsonKing hat geschrieben:zsh
Dann ist Dein Script wohl nicht von der zsh ausgeführt worden.
Meine Whishlist
:wq!

CrimsonKing
Beiträge: 106
Registriert: 30.08.2009 08:08:53
Lizenz eigener Beiträge: Artistic Lizenz

Re: typeset mag kein "-g"

Beitrag von CrimsonKing » 09.01.2010 20:49:20

Ja, ich dachte nach obigem Gespräch, das wäre klar? :|

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: typeset mag kein "-g"

Beitrag von Meillo » 09.01.2010 20:53:16

chrisbra hat geschrieben:Dann ist Dein Script wohl nicht von der zsh ausgeführt worden.
Wurde oben von mir doch schon erklärt. (Ich kann nicht versichern, dass meine Erklärung korrekt ist, doch ich vermute stark, dass sie es ist, oder zumindest in die richtige Richtung geht.)

Welche Frage ist denn noch offen?
Use ed once in a while!

chrisbra
Beiträge: 122
Registriert: 19.10.2005 09:36:09
Wohnort: Sachsen-Anhalt
Kontaktdaten:

Re: typeset mag kein "-g"

Beitrag von chrisbra » 11.01.2010 17:00:55

Meillo hat geschrieben:
chrisbra hat geschrieben:Dann ist Dein Script wohl nicht von der zsh ausgeführt worden.
Wurde oben von mir doch schon erklärt. (Ich kann nicht versichern, dass meine Erklärung korrekt ist, doch ich vermute stark, dass sie es ist, oder zumindest in die richtige Richtung geht.)

Welche Frage ist denn noch offen?
Keine. Meine Antwort sollte als Ergänzung zu Deiner dienen. denn mit echo $0 erfährt man, welche Shell ausgeführt wird. Na egal.
Meine Whishlist
:wq!

Antworten