Wie kann ich den Namen der Bash-Skriptdatei im Skript selbst ermitteln?
Wenn mein Skript zum Beispiel in der Datei runme.sh
Wie kann ich dann dafür sorgen, dass die Meldung "Sie führen runme.sh aus" angezeigt wird, ohne dies fest zu kodieren?
Wie kann ich den Namen der Bash-Skriptdatei im Skript selbst ermitteln?
Wenn mein Skript zum Beispiel in der Datei runme.sh
Wie kann ich dann dafür sorgen, dass die Meldung "Sie führen runme.sh aus" angezeigt wird, ohne dies fest zu kodieren?
Unter bash
können Sie den Namen der Skriptdatei mit $0
. Im Allgemeinen $1
, $2
usw. sind für den Zugriff auf CLI-Argumente. Ähnlich $0
ist der Zugriff auf den Namen, der das Skript auslöst (Name der Skriptdatei).
#!/bin/bash
echo "You are running $0"
...
...
Wenn Sie das Skript mit einem Pfad wie /path/to/script.sh
では $0
gibt auch den Dateinamen mit Pfad an. In diesem Fall müssen Sie $(basename $0)
um nur den Namen der Skriptdatei zu erhalten.
Informationen dank Bill Hernandez. Ich habe einige Einstellungen hinzugefügt, die ich annehme.
#!/bin/bash
function Usage(){
echo " Usage: show_parameters [ arg1 ][ arg2 ]"
}
[[ ${#2} -eq 0 ]] && Usage || {
echo
echo "# arguments called with ----> ${@} "
echo "# \$1 -----------------------> $1 "
echo "# \$2 -----------------------> $2 "
echo "# path to me ---------------> ${0} " | sed "s/$USER/\$USER/g"
echo "# parent path --------------> ${0%/*} " | sed "s/$USER/\$USER/g"
echo "# my name ------------------> ${0##*/} "
echo
}
Prost
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
3 Stimmen
Ähnlich [Kann ein Bash-Skript sagen, in welchem Verzeichnis es gespeichert ist?](zu stackoverflow.com/questions/59895/ )
1 Stimmen
Für das Verzeichnis, siehe: Abrufen des Quellverzeichnisses eines Bash-Skripts aus einer .