亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

腳本如下:為何執行該腳本會有如下報錯呢?

腳本如下:為何執行該腳本會有如下報錯呢?

拉莫斯之舞 2022-07-21 17:13:52
#!/bin/bashfact(){local num=$1if [ "$num" -eq 0 ]thenfact=1elselet "decnum=num-1"fact $decnumlet "fact=$num*$?"fireturn $fact}fact $1echo "fact of $1 is $?"exit 0為何執行該腳本會有如下報錯呢./fun27.sh: line 5: [: : integer expression expectedSegmentation fault
查看完整描述

2 回答

?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

執行這個腳本一定需要一個參數(第十五行fact $1),如果不帶參數fact函數中的num變量就會被賦值為空,這樣的換當運行到第五行if [ "$num" -eq 0 ] 腳本必然出錯,一個空值無法與一個數字做比較,于是報錯line 5: [: : integer expression expected

查看完整回答
反對 回復 2022-07-24
?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

運行腳本時需要傳入一個參數,如script.sh 25
腳本中在調用fact $1時用$1取得該參數并傳遞給fact函數。
若運行腳本時不帶參數,那么fact函數中(腳本第5行)"$num" 就會為空字符串,而這里要求的是數字比較,因此報錯。

查看完整回答
反對 回復 2022-07-24
  • 2 回答
  • 0 關注
  • 242 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號