Gegeben sei ein Skript, welches `~` enthält, um die home-Variable herauszufinden. Dieses befindet sich in einem Skript unter /home/myuser/... gleichzeitig ist es noch so, dass das Skript (teilweise) root-Rechte (über sudo, und der Benutzer "myuser" wäre ein sudoer!) braucht.
- Wenn ich mich nun als "myuser" einlogge, und dann `sudo echo ~` eingebe, dann erhalte ich als Ausgabe `/home/myuser`
- Wenn ich nun in einem Shell-Skript das Zeichen `~` verwende, dann wird plötzlich `/root` draus. (WTF??):
Code: Alles auswählen
Im Skript:
`cd ~/deployment/Temp/X2_CPP;`
... daraus wird in der Konsole das hier:
+ cd /root/deployment/Temp/X2_CPP
./compile.sh: Zeile 12: cd: /root/deployment/Temp/X2_CPP: Datei oder Verzeichnis nicht gefunden
Hier habe ich gelesen dass man unter `/etc/sudoers` die Option `env_keep` verwenden kann (Vorgabe war übrigens `env_reset`): https://unix.stackexchange.com/question ... s-behavior - funktioniert aber so nicht...
Weiss jemand, was das soll?? In der Konsole geht's ja und es wird mir `/home/myuser` ausgegeben... im Shell-Skrips (Bash-Header) dann allerdings nicht mehr, dort wird plötzlich wieder `/root` draus.
Vielen Dank für die Feedbacks.