相对于当前脚本路径而不是$ 0的另一个shell脚本

时间:2017-01-18 20:00:45

标签: bash shell

我想知道是否有一个很好的方法来获取另一个没有$(basename" $ 0")解决方案的shell脚本,因为有时" $ 0"没有设定。

例如" $ 0"将是" -sh"登录shell。

关于cwd解决方案存在同样的问题。

1 个答案:

答案 0 :(得分:3)

您可以使用此表达式查找父Bash脚本的目录:

dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

然后你可以像这样调用你的脚本:

cd $dir; source ./other_script

source $dir/other_script

请参阅此相关帖子:Getting the source directory of a Bash script from within