linux shell if [[ ! -z $1 ]];是什么意思?

如题所述

判断第一个参数不为空
!非
-z 在if里的意思是 空
$1 第一个参数
[ ! -z $1 ],这是需要返回一个值0或者1

最后结果是 if[1]或者if[0]
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-23
你可以输入 type [ [[ 来看下他们的说明
$ type [ [[ test
[ is a shell builtin
[[ is a shell keyword
test is a shell builtin
绝大多数情况下,这个三个功能通用。但是命令和关键字总是有区别的。命令和 关键字的差
别有多大呢?
如果是命令,它就和参数组合为一体被 shell 解释,那样比如 ">" "<" 就被 shell 解释为
重定向符号了。关键字却不这样。
在 [[ 中使用 && 和 ||
[ 中使用 -a 和 -o 表示逻辑与和逻辑或。

[[ 中可以使用通配符

arch=i486
[[ $arch = i*86 ]] && echo "arch is x86!"
[[ 中匹配字符串或通配符,不需要引号本回答被网友采纳
第2个回答  2012-10-24
判断 $1 这个变量是不是空字符串
如果不是返回真追问

[ ! -z $1 ]那干嘛还要多加一个中括号呢?

追答

括号是个表达式,相当于,test ! -z $!

本回答被提问者采纳