1
在一些古老的Shell腳本用於Solaris,我發現下面的形式來檢查,如果一個變量是空的:哪個`[`不能比較空字符串?
[ x"$var" = x ]
在當前的Linux系統,我將它寫就像
[ "$var" = "" ]
或
[ -z "$var" ]
哪個版本的[
實際上需要第一個符號?
在一些古老的Shell腳本用於Solaris,我發現下面的形式來檢查,如果一個變量是空的:哪個`[`不能比較空字符串?
[ x"$var" = x ]
在當前的Linux系統,我將它寫就像
[ "$var" = "" ]
或
[ -z "$var" ]
哪個版本的[
實際上需要第一個符號?
無。從[]到test的別名出現在測試選項-z後面。因此,如果您可以使用[ x"$var" = x]
,您還可以編寫[ -z "$var" ]
。
它的原因是什麼? – ceving
@ceving爲避免不安全實現的問題,如果測試一些字符串,如「-o a = a」。見http://www.in-ulm.de/~mascheck/various/test/ – Dunatotatos