当前位置: 技术问答>linux和unix
linux 脚本执行问题
来源: 互联网 发布时间:2016-09-06
本文导语: #!/bin/bash PNAME="gateway.exe" PATHNAME=/home/zjg/gateway/Debug LENGTH='ps -ef|grep "$PNAME"|grep -v grep|cut -b 49-200|wc -c' if (test $LENGTH -eq 0) then cd $PATHNAME #./"$PNAME" & echo "$PNAME" fi 我执行上面脚本时,执行if (test $LENGTH -eq 0)这一句...
#!/bin/bash
PNAME="gateway.exe"
PATHNAME=/home/zjg/gateway/Debug
LENGTH='ps -ef|grep "$PNAME"|grep -v grep|cut -b 49-200|wc -c'
if (test $LENGTH -eq 0)
then
cd $PATHNAME
#./"$PNAME" &
echo "$PNAME"
fi
我执行上面脚本时,执行if (test $LENGTH -eq 0)这一句时,总是报 test: too many arguments。各位,帮我看一下,该怎么改。
PNAME="gateway.exe"
PATHNAME=/home/zjg/gateway/Debug
LENGTH='ps -ef|grep "$PNAME"|grep -v grep|cut -b 49-200|wc -c'
if (test $LENGTH -eq 0)
then
cd $PATHNAME
#./"$PNAME" &
echo "$PNAME"
fi
我执行上面脚本时,执行if (test $LENGTH -eq 0)这一句时,总是报 test: too many arguments。各位,帮我看一下,该怎么改。
|
LENGTH='ps -ef|grep "$PNAME"|grep -v grep|cut -b 49-200|wc -c'
改成
LENGTH=$(ps -ef|grep "$PNAME"|grep -v grep|cut -b 49-200|wc -c)
或者用反引号【ESC下面数字前变的】
LENGTH=`ps -ef|grep "$PNAME"|grep -v grep|cut -b 49-200|wc -c`
改成
LENGTH=$(ps -ef|grep "$PNAME"|grep -v grep|cut -b 49-200|wc -c)
或者用反引号【ESC下面数字前变的】
LENGTH=`ps -ef|grep "$PNAME"|grep -v grep|cut -b 49-200|wc -c`
|
楼上的已经指出错误了
LENGTH='ps -ef|grep "$PNAME"|grep -v grep|cut -b 49-200|wc -c'
把语句执行的结果赋给变量不能用单引号!!!! 而是反单引号``
A='B' 错误!
A=`B` 正确
A=$(B) 正确
LENGTH='ps -ef|grep "$PNAME"|grep -v grep|cut -b 49-200|wc -c'
把语句执行的结果赋给变量不能用单引号!!!! 而是反单引号``
A='B' 错误!
A=`B` 正确
A=$(B) 正确