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)