config.sh

config.sh

config.sh

hi="/home/user"
date_sec=`date '+%s'`

das ist meine Datei1.

Haupt.sh

source config.sh
cd $hi
echo "$date_sec"

Die Quelle funktioniert nicht in main.sh

Antwort1

Einige Shells erfordern, dass die Datei sourcein Ihrem Computer verfügbar ist, $PATHsofern Sie keinen Pfad zum Skript angeben:

$ ksh93 main.sh
main.sh[1]: .: config.sh: cannot open [No such file or directory]

Ändern des Befehls in

source ./config.sh

sollte das Problem beheben.

Außerdem .ist (Punkt) portabler als sourceund funktioniert mit zB dashund sollte auch mit jeder anderen Shell funktionieren, die sich als tarnt sh:

. ./config.sh

Abgesehen davon,Erwägen Sie die Verwendung $( ... )von Backticks in neuen Skripten, UndDenken Sie daran, Ihre Variablen in Anführungszeichen zu setzenIch würde auch vorschlagenVerwenden printfstatt echofür variable Ausgabe.

verwandte Informationen