KSH - HP-SOL-Lin 需要POSIX結合Unix測試命令&& + ||
我想測試多個條件是否爲真,然後做一些事情。
假設:
FIELDS=0
$STRING=''
或$STRING=' '
現在我有:
if [[ $FIELDS -ne 0 && ! -z $STRING ]]; do
這工作得很好,如果$STRING
爲空,但它也有一個空間。我怎樣才能先處理兩個$STRING
測試?從概念上講,我想的等價的:記住
[[ $FIELDS -ne 0 && [ ! -z $STRING || $STRING = ' ' ] ]]
使用'[['會導致不確定的結果。如果你想成爲POSIX,你必須使用''''或'test'。 –
@WilliamPursell'[['不會導致未指定的結果。非POSIX兼容的結果或不可移植的結果,是的,但'bash'或'ksh'或'zsh'或者其它正在執行的shell都會指定結果。 – twalberg
@twalberg引用標準:'以下單詞在某些實現中可能被識別爲保留字(當沒有引用任何字符時),從而導致未指定的結果: [[]] function select' –