Ich habe ein Unix-Shell-Skript, das einige Umgebungsdateien verwendet. In der Umgebungsdatei sehe ich die Zeile:
. /export/applications/ibm6000/dte/sh/nyggmfiss.env
wenn ich die Datei nyggmfiss.env öffne, sehe ich die Variable
${__DTEENV}
Ich habe andere Umgebungsdateien geprüft und eine davon enthält eine Zeile
export __DTEENV=${0}
Weiß jemand, was $(0) ist? Stammt es aus dem Skript, das eine Umgebungsdatei exportiert, oder ist es der Name einer Umgebungsdatei, die „eine andere Umgebungsdatei exportieren“ enthält?
Antwort1
Mann-Bash:
$0 is set to the name of the file
Antwort2
${0}
ist das äußere Shell-Skript, das den Shell-Prozess gestartet hat, indem es #!/bin/yourshell
(die Shebang-Zeile) als erste Zeile hatte.
Wenn es kein äußeres Shell-Skript gibt (wenn Sie den .
Befehl in der Befehlszeile eingeben), dann ${0}
ist es Ihre Shell.
Das Konzept von ${0}
gilt nicht für bezogene „Umgebungsdateien“ und bleibt daher unverändert, wenn .
Befehle (Quellbefehle) in ausgeführt werden.