免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2946 | 回复: 10
打印 上一主题 下一主题

[ "$STR" != "" ] 和 [ -z $STR ]的区别 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-13 13:57 |只看该作者 |倒序浏览
[ "$STR" != "" ] 和 [ -z $STR ]有什么区别吗?
哪位能帮我解释一下。

[ 本帖最后由 reneyangs 于 2007-4-13 14:18 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-04-13 15:20 |只看该作者
原帖由 reneyangs 于 2007-4-13 13:57 发表
[ "$STR" != "" ] 和 [ -z $STR ]有什么区别吗?
哪位能帮我解释一下。





[ "$STR" != "" ]  # $STR的值不等于空..就返回0
[ -z $STR ]          # $STR值的长度为0  就返回0

论坛徽章:
0
3 [报告]
发表于 2007-04-13 22:14 |只看该作者
原帖由 zzx4441 于 2007-4-13 15:20 发表

[ "$STR" != "" ]  # $STR的值不等于空..就返回0
[ -z $STR ]          # $STR值的长度为0  就返回0



空和长度为0,不一样?

论坛徽章:
0
4 [报告]
发表于 2007-04-15 11:47 |只看该作者

回复 3楼 reneyangs 的帖子

[ "$STR" != "" ]  # $STR的值不等于空..就返回0
[ -z $STR ]          # $STR值的长度为0  就返回0

空和长度为0,不一样?

你应该是问 [ "$STR" = "" ]  和 [ -z $STR ]  有什么不同吧?

论坛徽章:
0
5 [报告]
发表于 2007-04-15 11:51 |只看该作者

回复 4楼 tanyear 的帖子

#!/bin/bash
if [ "$1" = "" ]
then echo null ok
fi
if [ -z $1 ]
then echo 0 ok
fi

一个小脚本,自己测试
[root@rhel5 ~]# ./test.sh
null ok
0 ok
[root@rhel5 ~]# ./test.sh ''
null ok
0 ok
[root@rhel5 ~]# ./test.sh ' '
0 ok

应该明白了吧,空格不是null,但是长度为0

论坛徽章:
0
6 [报告]
发表于 2007-04-21 06:36 |只看该作者
原帖由 tanyear 于 2007-4-15 11:51 发表
#!/bin/bash
if [ "$1" = "" ]
then echo null ok
fi
if [ -z $1 ]
then echo 0 ok
fi

一个小脚本,自己测试
[root@rhel5 ~]# ./test.sh
null ok
0 ok
[root@rhel5 ~]# ./test. ...



第三个测试 test.sh ' '
我试了一下,结果屏幕显示是空,说明即不是0,也不是null,和你执行的结果不一样。
我是SCO上的ksh

论坛徽章:
0
7 [报告]
发表于 2007-04-21 07:38 |只看该作者
原帖由 reneyangs 于 2007-4-21 06:36 发表



第三个测试 test.sh ' '
我试了一下,结果屏幕显示是空,说明即不是0,也不是null,和你执行的结果不一样。
我是SCO上的ksh

不同的shell对这个定义不同很正常,我是bash
反正自己试咯。

如果把 -z 的$1也用引号引起来。就是一样了
if [ -z "$1" ]

[ 本帖最后由 tanyear 于 2007-4-21 07:43 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2007-04-21 11:24 |只看该作者
学到了

论坛徽章:
0
9 [报告]
发表于 2007-04-21 17:55 |只看该作者
原帖由 tanyear 于 2007-4-21 07:38 发表

不同的shell对这个定义不同很正常,我是bash
反正自己试咯。

如果把 -z 的$1也用引号引起来。就是一样了
if [ -z "$1" ]


嗯 引用变量的时候,netman版主就告诉过我们,最保险的是加上“”

论坛徽章:
0
10 [报告]
发表于 2007-04-23 10:46 |只看该作者
学习了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP