[英]How do I get the script name being executed in bash?
所以我试图制作一个可移植的bashrc / bash_profile文件。 我有一个脚本,象征性地链接到.bashrc,.bash_profile等。然后,我查看$0
并根据调用的脚本来切换操作。 问题是shell调用了bashrc脚本,它实际上执行了bash,这对我来说意味着$0
是-bash
。 $1
进一步未设置为脚本名称。
所以我的问题是,在bash中如何获取正在执行的脚本的名称。 不是二进制执行它,例如bash?
我假设它没有给我-bash
并设置$1
,因为它确实不是一个新过程。 有任何想法吗?
尝试:
readlink -f ${BASH_SOURCE[0]}
要不就:
${BASH_SOURCE[0]}
。
备注 :
$0
仅在用户执行“ ./script.sh”时起作用
$BASH_ARGV
仅在用户执行“ $BASH_ARGV
”或“ source script.sh”时有效
${BASH_SOURCE[0]}
适用于两种情况。
使用符号链接时, readlink -f
很有用。
变量BASH_ARGV
应该可以工作,似乎脚本正在被获取
$BASH_ARGV
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.