为什么我的Bash脚本(OSX)是从终端运行的,但双击时却没有



这是我的bash脚本的全文:

GitC.sh

#!/bin/bash
git add .
git status
echo “Are you sure you want to commit and push? y/n”
read yn
if [ “$yn”==“y” ];
    then
    echo “Message:“ 
    read m
    git commit -m “$m”
    git push
    sleep 5s
else
    git reset
    sleep 5s
fi

我在文件上运行了chmod u+x,并选择了终端作为默认运行的应用程序,但当我双击它时,我得到的响应是

justins mbp:~Schwaiz$/Users/Schwaiz/Desktop/JustWas/GitC.sh;出口

并且该过程将不会继续。当我用命令从终端运行它时/GitC.sh,它运行得很完美。

想法?

脚本假设当前工作目录与脚本相同,我敢肯定,当通过双击Finder激活时,情况并非如此。如果您调用这样的脚本,也会导致问题:

/path/to/script.sh

因此,您需要确保它更改为与脚本相同的目录:

dir="$(dirname "$0")"
cd "$dir"
... etc.

最新更新