#1 24.12.2017 13:55:42

Werner
Mitglied

[Gelöst] $PWD in anderen Distros?

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?

Beitrag geändert von Werner (24.12.2017 14:49:08)

Offline

#2 24.12.2017 14:27:45

GerBra
Mitglied

Re: [Gelöst] $PWD in anderen Distros?

Werner schrieb:

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.

Offline

#3 24.12.2017 14:48:35

Werner
Mitglied

Re: [Gelöst] $PWD in anderen Distros?

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.)

Offline

#4 24.12.2017 15:46:31

Werner
Mitglied

Re: [Gelöst] $PWD in anderen Distros?

… 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

Offline

#5 24.12.2017 16:47:56

rriw
Gast

Re: [Gelöst] $PWD in anderen Distros?

Das kommt auf die Shell an und nicht auf die Distro.

Falls du Bash benutzt:

man bash schrieb:
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.

#6 24.12.2017 17:17:17

Werner
Mitglied

Re: [Gelöst] $PWD in anderen Distros?

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

Offline

#7 25.12.2017 22:32:16

Werner
Mitglied

Re: [Gelöst] $PWD in anderen Distros?

Falls es von Interesse sein sollte – das Skript ist nun unter Berücksichtigung eurer hilfreichen Hinweise fertig. [1]

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums