双击执行shell脚本

背景

最近工作环境切到了mac,所以很多windows的工具需要且过来,项目的消息生成工具即是需要如此,好在工具是java写的,跨平台没问题,剩下的只要把,windows下的.bat改成sh即可。

问题-双击执行shell脚本

改脚本很容易,可是mac下执行shell脚本需要每次在终端上 sh youshell.sh这样很不方便。我需要双击执行脚本,遂查询之,把大象装冰箱分3部:

  • 新建shell脚本,编写并保存
  • 修改脚本的属性,使其变为可执行脚本,见下文
  • 在finder中右键文件,同时按住Option键,选择“始终用以此方式打开”,选择终端或者iTerm2之类
1
2
#添加文件的执行权限
chmod +x youshell.sh

问题2-设置工作路径

通过上面的设置可以双击执行脚本了,这时你会发现,脚本的执行路径并不是脚本所在路径。如果你使用了相对路径作为执行参数可能会出现找不到文件或路径的提示。我们需要设置一下当前工作路径

解决方法,我们需要使用dirname命令,在脚本最前面加上如下代码:

1
2
# 进入当前目录
cd $(dirname "$0")

dirname dir 命令是获取dir的文件夹路径