Du bist nicht angemeldet.
Falls es von Interesse sein sollte – das Skript ist nun unter Berücksichtigung eurer hilfreichen Hinweise fertig. [1]
Danke rriw!
Demnach scheint das eine seltene Ausnahme zu sein. Aber wenn schon eine Fehlermeldung, dann doch gerne möglichst präzise.
if [[ -z $PWD ]]; then
echo "Sorry, \$PWD is not set in $0."
fi
Das kommt auf die Shell an und nicht auf die Distro.
Falls du Bash benutzt:
PWD The current working directory as set by the cd command.
Eine Shell, die diese Variable nicht setzt, hab ich leider gerade nicht die Zeit zu suchen.
… daß $PWD (sofern gesetzt) …
Das sollte ich dann doch besser abfangen …
if [[ -z $PWD ]]; then
echo "Oops, '\$PWD' is not set in your Distro. Sorry."
exit
else
CC=$PWD/custom.css
CJ=$PWD/custom.js
fi
if [[ ! -f $CC ]] && [[ ! -f $CJ ]]; then
echo "► Neither 'custom.css' nor 'custom.js' was found in $PWD";
exit
fi
Danke GerBra!
Dann verwende ich $PWD.
Wenn das Risiko gegen Null geht, fange ich es nicht zusätzlich ab. Das Skript prüft auf die Existenz von Dateien. Wenn‘s nicht passt, wird ohnehin abgebrochen.
CC=$PWD/custom.css
CJ=$PWD/custom.js
if [[ ! -f $CC ]] && [[ ! -f $CJ ]]; then
echo "► Neither 'custom.css' nor 'custom.js' in $PWD was found.";
exit
fi
❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄
An dieser Stelle Frohe Weihnachten an alle!
(Übrigens hat heute nicht nur der Mann am, sondern auch der mit dem Kreuz Geburtstag.)
Verhält sich $PWD bei anderen Distros identisch?
Mir ist bisher noch bei keinem Linux (oder UNIX) aufgefallen, daß $PWD (sofern gesetzt) nicht das Erwartete ausgegeben hätte.
Du könntest (quasi als Erstalternative) auf das Vorhandensein von /usr/bin/pwd prüfen (coreutils) und dieses dann nutzen, als Alternative dann eben die Umgebungsvariable (die ja meistens von der Shell gesetzt wird - also "extern" -, manche Shells können sogar pwd als Befehl haben.
Mein Bash-Skript soll auch in anderen Linux-Distros robust laufen. In dem Skript, das als root ausgeführt wird, will ich auf das Ausgangsverzeichnis zugreifen, am liebsten ohne zusätzliche Variable:
[root@neno Scripts]# DIR=$(pwd) && echo $DIR
/home/werner/GNU-Linux/Scripts
[root@neno Scripts]# echo $PWD
/home/werner/GNU-Linux/Scripts
Verhält sich $PWD bei anderen Distros identisch?