码迷,mamicode.com
首页 > 系统相关 > 详细

Linux shell if [ -n ] 正确使用方法

时间:2017-01-24 16:11:08      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:字符串   round   内容   参数   $*   argument   shel   语句   利用   

if [ str1 = str2 ]       当两个串有相同内容、长度时为真 
if [ str1 != str2 ]      当串str1和str2不等时为真 
if [ -n str1 ]       当串的长度大于0时为真(串非空) 
if [ -z str1 ]        当串的长度为0时为真(空串) 
if [ str1 ]         当串str1为非空时为真

shell 中利用 -n 来判定字符串非空。

错误用法:

ARGS=$*

if [ -n $ARGS  ]

then

   print "with argument"

fi

print " without argument"

不管传不传参数,总会进入if里面。

原因:因为不加“”时该if语句等效于if [ -n ],shell 会把它当成if [ str1 ]来处理,-n自然不为空,所以为正。

 

正确用法:需要在$ARGS上加入双引号,即"$ARGS".

 

ARGS=$*

if [ -n "$ARGS"  ]

then

   print "with argument"

fi

print " without argument"

Linux shell if [ -n ] 正确使用方法

标签:字符串   round   内容   参数   $*   argument   shel   语句   利用   

原文地址:http://www.cnblogs.com/dyh004/p/6347226.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!