1. 程式人生 > >新手mac上執行shell指令碼常見問題

新手mac上執行shell指令碼常見問題

最近打算在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格式。

在轉換之前可以通過 檢視-顯示字元-顯示所有字元,來觀察兩種格式檔案的區別