[username@notebook ~]$ cat foo.sh
#!/bin/bash
echo "$0"
[username@notebook ~]$ ./foo.sh
./foo.sh
[username@notebook ~]$
Frage : Wie kann ich "foo.sh" ausgeben? Egal wie es ausgeführt wurde.
[username@notebook ~]$ cat foo.sh
#!/bin/bash
echo "$0"
[username@notebook ~]$ ./foo.sh
./foo.sh
[username@notebook ~]$
Frage : Wie kann ich "foo.sh" ausgeben? Egal wie es ausgeführt wurde.
Antworten:
POSIXly benötigen Sie nur die Parametererweiterung :
#!/bin/bash
printf '%s\n' "${0##*/}"
-
, benötigen Siebasename -- "$0"
. Verwenden Sie die Shell-Parametererweiterung, um dies zu vermeiden, und zwingen Sie Sie nicht, einen externen Befehl zu starten.