ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【shell 】syntax error in conditional expression

【shell 】syntax error in conditional expression

原创 Linux操作系统 作者:杨奇龙 时间:2011-03-13 10:47:48 0 删除 编辑
编写shell 脚本时遇见 syntax error in conditional expression 错误,
#!/bin/bash
# cleanup /var/log/message
LOG_DIR=/var/log
ROOT_DID=0
LINES=50
E_XCD=66
E_NOTROOT=67
if [[ "$UID" -ne "$ROOT_UID"]]
then
 echo "Must be root to run this script."
 exit $E_NOTROOT
fi
if [ -n "$1"]
then
    lines=$1
else
   lines=$LINES
fi
.......
root@client.example.com # sh test.sh
test.sh: line 12: syntax error in conditional expression
test.sh: line 13: syntax error near `then'
test.sh: line 13: `then'
仔细查看是由于 if 条件中的中括号[ ]与变量之间必须有空格
root@client.example.com # vi test.sh
#!/bin/bash
# cleanup /var/log/message
LOG_DIR=/var/log
ROOT_DID=0
LINES=50
E_XCD=66
E_NOTROOT=67
if [[ "$UID" -ne "$ROOT_UID" ]]
then
 echo "Must be root to run this script."
 exit $E_NOTROOT
fi
if [ -n "$1"]
then
    lines=$1
else
   lines=$LINES
fi
.....
"test.sh" 60L, 793C written
修改以后,再次执行成功
root@client.example.com # sh test.sh 20
Logs cleaned up

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22664653/viewspace-689293/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
MySQL DBA NoSQL DEVOPS

注册时间:2009-10-07

  • 博文量
    1026
  • 访问量
    7717357