shell test 命令判断字符串的问题
判断字符串是否非空,不是的话输出字符串,为空的话输出null脚本里写
程序代码:
#!/bin/sh STR="" if test -n $STR; then echo $STR else echo null fi;
但结果却是输出$STR了,去掉-n或给$STR加上""的话结果就没问题了
本以为对于字符串的判断都应该加上"",但是同样是判断字符串,使用参数 -z 却没有问题,如
程序代码:
#!/bin/sh STR="" if test -z $STR; then echo null else echo $STR fi;
这是什么原因呢?是因为STR为空不加""时,相当于test没有接受第二个参数吗?所以返回无参时的默认值?这些默认值又是什么?