Ich habe ein Shell-Skript, das eine Umgebungsdatei exportiert, die wiederum die zweite Umgebung exportiert, in der globale Variablen deklariert und exportiert werden

Ich habe ein Shell-Skript, das eine Umgebungsdatei exportiert, die wiederum die zweite Umgebung exportiert, in der globale Variablen deklariert und exportiert werden

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.

verwandte Informationen