Welche Aufforderung verwendet sh, wenn Sie sh in Terminal eingeben?

939
Igorio

Wenn Sie die standardmäßige PS1-Eingabeaufforderung verwenden, die im Lieferumfang von MAC OS / Terminal enthalten ist, erhalten Sie bei der Eingabe von sh eine neue Eingabeaufforderung.

station-4:~ user$ sh sh-3.2$  

Wenn Sie Ihre eigene PS1 exportieren, entfällt diese Funktionalität. Sie geben sh ein und erhalten weiterhin die von Ihnen angegebene PS1-Eingabeaufforderung. Warum ist das?

station-4:~ user$ export PS1=">>>" >>>sh >>> 
2
Versuchen Sie "which sh", um zu sehen, was Ihre Shell ist, und überprüfen Sie das Ergebnis auf Symlinks. Kerrek SB vor 12 Jahren 0

1 Antwort auf die Frage

4
grawity

"Exportieren" ist das Schlüsselwort. Ich habe selbst keinen Mac, aber ich schätze, dass die bashrcDatei nicht exportiert wird $PS1, sondern lediglich gesetzt wird, sodass bashdie Variable selbst angezeigt wird, aber nicht in die Umgebung neuer Prozesse verschoben wird. ( bash ist die von OS X verwendete Standard-Shell.)

Sie können verwendet werden printenv PS1, env | grep ^PS1oder declare -p PS1um herauszufinden, ob eine Variable Teil der Umwelt ist. (Sie sehen sonst, declare -xob die Variable exportiert wird declare --.)