Bash运算符:“!"相对于"-z" [英] Bash operators: "!" vs "-z"

查看:103
本文介绍了Bash运算符:“!"相对于"-z"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

运算符!"之间有什么区别?和"-z"应用于字符串?

What is the difference between the operator "!" and "-z" applied to a string?

#Example 1
if [ ! STRING ]; then ...

#Example 2
if [ -z STRING ]; then ...

谢谢

推荐答案

首先,您使用单个方括号.这意味着您正在使用test命令,而不是Bash-builtin函数.从手册中:

First of all you make use of single brackets. This implies that you are using the test command and not the Bash-builtin function. From the manual :

test EXPRESSION [ EXPRESSION ] :此退出以EXPRESSION

! EXPRESSION::test返回EXPRESSION true false

-z STRING::如果STRING的长度为零,则test返回 true .

-z STRING: test returns true if the length of STRING is zero.

示例:

$ [ -z "foo" ] && echo "zero length" || echo "non-zero length"
non-zero length
$ [ ! -z "foo" ] && echo "non-zero length" || echo "zero length"
non-zero length
$ [ -z "" ] && echo "zero length" || echo "non-zero length"
zero length
$ [ ! -z "" ] && echo "non-zero length" || echo "zero length"
zero length

但是现在您想知道[ ! STRING ]:

手册指出[ STRING ]等同于[ -n STRING ],它测试STRING是否具有非零长度.因此[ ! STRING ]等效于[ -z STRING ].

The manual states that [ STRING ] is equivalent to [ -n STRING ], which tests if STRING has a non-zero length. Thus [ ! STRING ] is equivalent to [ -z STRING ].

-n STRING::STRING的长度不为零.

-n STRING: the length of STRING is nonzero.

STRING:等同于-n STRING

来源:man test


答案: [ ! STRING ]等同于[ -z STRING ]


answer:[ ! STRING ] is equivalent to [ -z STRING ]

这篇关于Bash运算符:“!"相对于"-z"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆