bash – 在与当前脚本相同的目录中运行脚本
发布时间:2020-12-15 19:02:42 所属栏目:安全 来源:网络整理
导读:我在同一个文件夹中有两个Bash脚本(由下载整个存储库的用户保存在某处): script.sh由用户运行 helper.sh是必需的,由script.sh运行 这两个脚本应位于同一目录中.我需要第一个脚本来调用第二个脚本,但有两个问题: 了解当前的工作目录对我来说没用,因为我不知
我在同一个文件夹中有两个Bash脚本(由下载整个存储库的用户保存在某处):
> script.sh由用户运行 这两个脚本应位于同一目录中.我需要第一个脚本来调用第二个脚本,但有两个问题: >了解当前的工作目录对我来说没用,因为我不知道用户是如何执行第一个脚本的(可能是/usr/bin/script.sh,带有./script.sh,或者它可能与../Downloads/repo/scr/script.sh) 我绝对可以通过在一个变量中存储the current directory来实现这一点,但是这个代码看起来很复杂,我认为这是一个非常常见和简单的任务. 有没有一种标准的方法可以在script.sh中可靠地调用helper.sh?并且可以在任何支持Bash的操作系统中使用吗?
由于$0保存了正在运行的脚本的完整路径,因此您可以使用
dirname 来获取脚本的路径:
#!/bin/bash script_name=$0 script_full_path=$(dirname "$0") echo "script_name: $script_name" echo "full path: $script_full_path" 所以,如果您将它存储在/tmp/a.sh中,那么您将看到如下输出: $/tmp/a.sh script_name: /tmp/a.sh full path: /tmp 所以
使用dirname“$0”将允许您跟踪原始路径.
同样,由于你有$0的路径,你可以回到它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |