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 source
in Ihrem Computer verfügbar ist, $PATH
sofern 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 source
und funktioniert mit zB dash
und 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 printf
statt echo
für variable Ausgabe.