[username@notebook ~]$ cat foo.sh
#!/bin/bash
echo "$0"
[username@notebook ~]$ ./foo.sh
./foo.sh
[username@notebook ~]$
Вопрос : Как я могу вывести "foo.sh"? Неважно, как это было выполнено.
[username@notebook ~]$ cat foo.sh
#!/bin/bash
echo "$0"
[username@notebook ~]$ ./foo.sh
./foo.sh
[username@notebook ~]$
Вопрос : Как я могу вывести "foo.sh"? Неважно, как это было выполнено.
Ответы:
POSIXly, вам нужно только расширение параметров :
#!/bin/bash
printf '%s\n' "${0##*/}"
-
, вам нужноbasename -- "$0"
. Использование расширения параметров оболочки, чтобы избежать этого и не заставлять вас запускать внешние команды.