如何仅打印出脚本名称?

fre*_*ion 10 bash shell-script

[username@notebook ~]$ cat foo.sh 
#!/bin/bash

echo "$0"
[username@notebook ~]$ ./foo.sh
./foo.sh
[username@notebook ~]$ 
Run Code Online (Sandbox Code Playgroud)

问题:如何输出“foo.sh”?不管它是如何被执行的。

cjm*_*cjm 26

使用basename

#!/bin/bash

basename -- "$0"
Run Code Online (Sandbox Code Playgroud)

如果你想把它分配给一个变量,你会这样做:

my_name=$(basename -- "$0")
Run Code Online (Sandbox Code Playgroud)


cuo*_*glm 13

POSIXly,您只需要Parameter Expansion

#!/bin/bash

printf '%s\n' "${0##*/}"
Run Code Online (Sandbox Code Playgroud)