2016-11-18 48 views
0

new_session應echo'ed爲setsid.but是印刷NULL慶典當它傳遞零語句被擊中即成功

#!/bin/bash 

X = 0

if $x; 
     then 
      new_session="setsid" 
     fi 

echo $new_session 
+0

嘗試:'_is_linux = FALSE' –

+0

是另一個功能無法控制它的退出狀態 –

+0

你有叫'0'的命令嗎?您的代碼正在測試該命令的退出狀態;它不測試變量'$ _is_linux'中的值是否爲0或任何其他字符串。 –

回答

2

(())運算符計算表達式爲bash中的C算術,並且具有布爾返回,即((0))爲假,並且((1))爲真。

您可能需要像下面的東西: -

#!/bin/bash 

_is_linux=0 

if ((_is_linux));then 
new_session="setsid" 
fi 

(或)更簡單

#!/bin/bash 

_is_linux=0 
((_is_linux)) && new_session="setsid" 
+0

這是一個很好的....我想知道是否有類似的真/假值的語法,以建立一個「如果標誌然後」語句,而不是「如果標誌=真」語句 –