如何只打印出脚本名称?

如何只打印出脚本名称?
[username@notebook ~]$ cat foo.sh 
#!/bin/bash

echo "$0"
[username@notebook ~]$ ./foo.sh
./foo.sh
[username@notebook ~]$ 

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

答案1

使用basename:

#!/bin/bash

basename -- "$0"

如果你想将它分配给一个变量,你可以这样做:

my_name=$(basename -- "$0")

答案2

POSIXly,你只需要参数扩展:

#!/bin/bash

printf '%s\n' "${0##*/}"

相关内容