shell指令碼中不識別source命令

weixin_34162695發表於2018-07-05

工作需要寫一個批量執行的shell指令碼,其中使用了source命令初始化Android編譯環境載入特定的配置檔案。將source命令寫到指令碼中,發現整個命令都沒有變色,這是什麼情況,心中打了個大問號,不過還是忽略了,接著碼指令碼,指令碼完成後,興致勃勃的執行了一下,發現source這行執行失敗(command not found、source: not found ),導致後面用到的Android編譯環境也失敗了,大篇的失敗,心塞塞的

原因:使用下面的命令檢視下sh的詳情

ls -l `which sh`

8906296-1f46f5ae02dfc042.png

結果如圖所示,/bin/sh預設指向了dash,so指令碼預設是以dash模式執行的

解決問題:將系統預設的執行方式修改為bash,執行下面命令

dpkg-reconfigure dash

8906296-4e1ec0ac987664da.png

執行結果,提示是否設定dash設定為系統預設shell模式,選擇no,將bash設定為預設

這是完成後,重新檢視sh詳情,見下圖

8906296-61e7fe1a79994a28.png

/bin/sh指向了bash。下面重新執行下shell指令碼,如果還是提示command not found,只能重啟下機器了

原文連結

相關文章