Kann mir jemand erklären, was die Shell in den beiden folgenden Beispielen A) und B) tut? Es verhält sich offensichtlich anders, aber ich kann nicht herausfinden, warum die Ausgabe anders ist.
Beispiel:
Lassen Sie uns ein Skript in unserem aktuellen Verzeichnis bla.sh
mit nur einem Befehl benennen :
echo ${0##/*} hello
A)
Begonnen als: ./bla.sh
gibt:./bla.sh hello
B)
Begonnen als: . bla.sh
gibt:-bash hello
Da ich dies in einem Skript verwende, bricht die zweite Ausgabe (wegen des "-" vor der -bash) den Befehl ab. Natürlich hat ein einfaches --
vor dem ${...}
geholfen, aber ich würde gerne verstehen, was die Ausgabe überhaupt verursacht.
Ich liebe Bash. Und vi [m]. Aber ich schweife ab…