当前位置: 技术问答>linux和unix
shell 脚本里的if遇到问题
来源: 互联网 发布时间:2016-10-07
本文导语: 今天遇到个问题写shell脚本里一个简单的if 判断: if [ $LAST_ID != "" ] 或者 if [-n $LAST_ID] 但是执行时候是都会报错,不解?有人回答一下吗,报错: if [ $LAST_ID != "" ] 报这个错 ./insert_user.sh: line 53: [:...
今天遇到个问题写shell脚本里一个简单的if 判断:
if [ $LAST_ID != "" ] 或者 if [-n $LAST_ID]
但是执行时候是都会报错,不解?有人回答一下吗,报错:
if [ $LAST_ID != "" ] 报这个错 ./insert_user.sh: line 53: [: too many arguments
if [-n $LAST_ID] 报这个错 ./insert_user.sh: line 60: [: last_insert_id(): unary operator expected
if [ $LAST_ID != "" ] 或者 if [-n $LAST_ID]
但是执行时候是都会报错,不解?有人回答一下吗,报错:
if [ $LAST_ID != "" ] 报这个错 ./insert_user.sh: line 53: [: too many arguments
if [-n $LAST_ID] 报这个错 ./insert_user.sh: line 60: [: last_insert_id(): unary operator expected
|
双引号问题 if [ $LAST_ID != "" ] 或者 if [-n $LAST_ID]
$LAST_ID 可能为空字符串, 而if [ != "" ] 是非法了的。
这个在 linux 程序设计 书上讲if elif 中有强调指出
$LAST_ID 可能为空字符串, 而if [ != "" ] 是非法了的。
这个在 linux 程序设计 书上讲if elif 中有强调指出
|
if [ "$LAST_ID" != "" ]; then
echo abc
fi
if [ -n $LAST_ID ]; then
echo def
fi
echo abc
fi
if [ -n $LAST_ID ]; then
echo def
fi
|
推荐的写法1
推荐的写法2
if [[ "$LAST_ID" != "" ]]; then
推荐的写法2
if [ x"$LAST_ID" != x"" ]; then