Warum sind Shell-Skripte so schwer zu entwickeln? In NodeJS könnte ich einfach tun:
require('./script')
und es wird immer ein Skript relativ zum aktuellen Skript erforderlich sein. Aber wenn ich das in Shell / Bash versuche:
./script.sh
Es wird nach einem Skript relativ zu cwd
( pwd
) gesucht. Der Punkt bedeutet cwd
( pwd
) und nicht das Verzeichnis, in dem sich das aktuelle Skript befindet, wie ich es erwartet hatte.
line 8: ./script.sh: No such file or directory
Wie führe ich ein Skript relativ zu dem Verzeichnis aus, in dem sich das aktuell ausgeführte Skript befindet?
Ich habe versucht
/bin/bash script.sh
aber Fehler bekommen:
/bin/bash: script.sh: No such file or directory
Dann versucht
script.sh
Habe diesen Fehler
line 8: script.sh: command not found
Nur die folgende Lösung hat gut funktioniert, aber das Problem ist, dass sie nicht lesbar ist:
$("$(dirname "$(realpath "$0")")/script.sh")
quelle