新手mac上執行shell指令碼常見問題
阿新 • • 發佈:2018-12-09
最近打算在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格式。
在轉換之前可以通過 檢視-顯示字元-顯示所有字元,來觀察兩種格式檔案的區別