如何在 Ubuntu 和 Mac 上无需任何修改即可运行以 ./ 开头的 shell 脚本?

如何在 Ubuntu 和 Mac 上无需任何修改即可运行以 ./ 开头的 shell 脚本?

原始代码,适用于 Ubuntu:

./rebar get-deps
./rebar compile

当我尝试时:

sh start.sh
start.sh: line 5: ./rebar: No such file or directory

修复很简单,只需删除./

但是如何让脚本在Ubuntu苹果不强迫用户做出任何改变?


编辑/更新: rebarErlang 工具是通过什么方式安装的brew install rebar

原始文件如下start.shhttps://github.com/aeternity/testnet/blob/master/start.sh

我认为这是 Mac 和 Ubuntu 之间的区别 - 该脚本据称可以在 Ubuntu 上运行(没有机会尝试)- 在 Mac 上我必须删除./ (我需要自己检查一下 Ubuntu)

答案1

./rebar仅寻址当前工作目录中的文件。启动rebar将强制查找您PATH环境中的目录。

如果这是您可以添加到脚本中的唯一两个选项:

REBAR="rebar"
[ -x ./rebar ] && REBAR="./rebar"   # check if rebar is in pwd

$REBAR get-deps
$REBAR compile 
...

相关内容