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

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

linux shell if幾個困惑

linux shell if幾個困惑

皈依舞 2019-04-13 08:46:13
最近接觸shell感覺語法真是奇怪無比if貌似有的時候能加[]而有的時候是不能加[]的這什么時候能加什么時候不能加呢還有if什么時候是獲取命令執行后輸出的內容還有是什么時候命令執行后是否成功也就是echo$?呢感覺if變化太多了
查看完整描述

2 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

mantest,當[只是一個普通的命令就行了。if[-d/root]等同于iftest-d/root,語義是ifisdir/root。你直接這樣執行也可以?。?pre>
[-d/root]
echo$?#輸出0
[-e/www]
if[$?-eq0];then
echo'OK'
else
echo'Notexists:/www'
fi
if難道有形式是直接判斷程序的stdout有沒有輸出的?沒有吧~if始終只是判斷程序執行結果的exitstatus,即$?,0表示true,非0表示false。
對了,其實了解下$?、SIG、Pipe之類的是什么就行了,Bash這些奇怪的語法真的不用多學的,反正真要寫腳本,干嘛不用Python呢,PHP也比Bash好啊。過來人~說多了都是淚!
                            
查看完整回答
反對 回復 2019-04-13
?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

if貌似有的時候能加[]而有的時候是不能加[]的這什么時候能加什么時候不能加呢
還有if什么時候是獲取命令執行后輸出的內容
A:用反引號``,例如a=`pwd`就是獲取當前路徑然后復制到a變量
還有是什么時候命令執行后是否成功也就是echo$?呢
A:$?返回值0代表執行成功,返回值1代表執行失敗
                            
查看完整回答
反對 回復 2019-04-13
  • 2 回答
  • 0 關注
  • 350 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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