繁体   English   中英

我如何在bash中执行脚本名称?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM