[英]What is the mistake in this shell script
我寫了下面的代碼..
installFunction(){
perl Makefile.PL
flag1 = $?
make
flag2 = $?
make install
flag3 = $?
make test
flag4 = $?
cd ..
return $flag1 || $flag2 || $flag3 || $flag4
}
if(installFunction != 0)
then
echo "installation failure"
exit
fi
但是當我運行代碼時,我收到以下錯誤
./install:53:標記1:找不到
./install:53:標記2:找不到
./install:53:標記3:找不到
./install:53:標記4:找不到
誰能說是什么問題?
提前致謝!!
嘗試
flag1=$?
注意缺少空間。
http://tldp.org/LDP/abs/html/varassignment.html
if
語句無效。
installFunction if [ $? -ne 0 ] then echo "installation failure" exit fi
應該管用。 強制性鏈接: http : //tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html
return語句也是錯誤的: return $((flag1 | flag2 | flag3 | flag4))
變量分配不正確,請man bash
並在PARAMETERS上閱讀。 該部分應詳細說明。
您的if語句語法不正確,請在bash手冊中閱讀“ 復合命令”
如果我了解您的if語句的語義,您想檢查函數調用中的返回碼並驗證其是否不為零? 您應該調用函數,然后使用$?
獲得返回代碼$?
。 因此,您需要在此處進行一些小的修改。
最后但並非最不重要的一點是,您可以通過運行命令sh -n script.sh
來檢查Shell腳本是否存在語法錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.