最近打算在mac使用shell来实现unity的自动打包功能,写完脚本信心满满结果刚一执行就报错,通过参考网上的解决方案最终顺利执行脚本,以下总结和记录第一次在mac机上执行shell文件最可能遇到的两个问题。
1.权限问题
在终端执行sh文件时报 -bash: /Users/XXX/Test.sh: Permission denied
解决方法:在终端执行以下命令,该命令行将修改所有用户的访问权限为可读可写可执行
chmod 777 /Users/XXX/Test.sh
2.修改权限后再次执行时很可能又会遇到以下问题
-bash: /Users/XXX/Test.sh: /bin/sh^M: bad interpreter: No such file or directory
报这个错的原因是我在windows下编写的脚本文件,文件的格式为dos格式,将格式转为unix即可
方法1:
在终端使用vi命令打开文件
vi /Users/XXX/Test.sh
在vi模式中输入
:set ff
可看到文件的格式
fileformat=dos
使用以下命令将文件格式修改为unix格式
:set ff=unix
:exit命令退出vi模式再执行shell文件
方法2:
使用编辑器修改文件格式,以下使用notepad++修改
编辑-文档格式转换-转为UNIX格式,即可转换为unix格式。
在转换之前可以通过 视图-显示字符-显示所有字符,来观察两种格式文件的区别