問題---執行sh ./xxx.sh出現:Syntax error: "(" unexpected (expecting "done")


 

 

 這與實際使用的shell版本有關。
可以用 ls -l /bin/*sh 打印出來,例如:

 

 在這里,sh被重定向到dash,因此,如果執行./example.sh,則使用的是dash 。
避免報錯可有多種方法,例如執行: bash example.sh ;
或者將腳本第一行#!/bin/sh 改為:#!/bin/bash ,執行./example.sh也可以。

 

另一種解決辦法:

代碼對於標准bash而言沒有錯,因為Ubuntu/Debian為了加快開機速度,用dash代替了傳統的bash,是dash在搗鬼,解決方法就是取消dash:
sudo dpkg-reconfigure dash ,在選擇項中選No。

@https://blog.csdn.net/u014470581/article/details/51493150


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM