我想知道是否有一个很好的方法来获取另一个没有$(basename" $ 0")解决方案的shell脚本,因为有时" $ 0"没有设定。
例如" $ 0"将是" -sh"登录shell。
关于cwd解决方案存在同样的问题。
答案 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