Chinaunix
标题:
sehll -n -s 字符串测试,疑问
[打印本页]
作者:
青颜如风
时间:
2016-06-17 09:53
标题:
sehll -n -s 字符串测试,疑问
本帖最后由 青颜如风 于 2016-06-17 09:54 编辑
字符串测试
-n string: 测试指定字符串是否
为空,
空则真
,
不空则假
.
-s string: 测试指定字符串
是否不空,
不空则真
,
空则为假
.
[root@localhost ~]# a="abc"; [ -n "$a" ];echo $? #$a不空,假,输出0
0
[root@localhost ~]# a=""; [ -n "$a" ];echo $? #$a为空,真,输出1
1
[root@localhost ~]# a=""; [ -s "$a" ];echo $? #$a为空,假,输出却为 1 ;假不是应该输出0么?
1
[root@localhost ~]# a="abc"; [ -s "$a" ];echo $? #$a不空,真,输出1
1
问题:
[root@localhost ~]# a=""; [ -s "$a" ];echo $?
#$a为空,假,输出却为 1 ;假,不是应该输出0么?
1
是我理解错了吗?请大大们,解惑 .
作者:
过过招
时间:
2016-06-17 09:59
a=""; [
-z
"$a" ];echo $?
作者:
青颜如风
时间:
2016-06-17 10:23
回复
2#
过过招
谢谢,回复:这个明白,疑问的是
-s
选项;
[ -S FILE ] 如果 FILE 存在且是一个套接字则为真.
[root@web tmp]# [ -s "/tmp/mysql.sock" ]; echo $?
1
[root@web tmp]# [ -s "/tmp/abc.sock" ]; echo $? #,abc.sock这个套接字,
不存在
,却输出 1 ,为何?
1
作者:
blackold
时间:
2016-06-17 10:25
回复
3#
青颜如风
不存在那肯定输出1了。
-s File 和 -s string 不同。
作者:
过过招
时间:
2016-06-17 10:31
-s 用于file
-z 用于字符串
别混淆了
作者:
青颜如风
时间:
2016-06-17 10:32
回复
4#
blackold
谢谢回复,查资料已了然.
作者:
青颜如风
时间:
2016-06-17 10:35
回复
5#
过过招
谢谢,了然了. 还有个大S,判断是否为套接字,理清了.
作者:
过过招
时间:
2016-06-17 10:36
回复
7#
青颜如风
古德,吴瑞古德,知其然,知其所以然。做技术就应该刨根问底,看好你!
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2