2011-10-01 112 views
0
#!/bin/sh 
SUCCESS=0 
java -jar sbc.jar & 
while [ true ]; 
do 
echo "sleeping" 
sleep 5 
echo "again" 
tail -1 ~/NetBeansProjects/xyz/dist/newlog.log | grep -q "[INFO ] - Stream closed" 
if [ $? = 1 ] 
then 
echo " entered if " 
java -jar sbc.jar & 
else 
echo " did not if " 
fi 
done 

我想使用比$更好的变量吗?存储前一行的结果,因为我可能需要它多次。该脚本旨在检查文件newlog.log的最后一行以查看特定的字符串,然后再次启动sbc.jar,因为该字符串确认程序已停止。在shell脚本中分配变量

回答

1

储存于另一个变量:

... 
tail -1 ~/NetBeansProjects/xyz/dist/newlog.log | grep -q "[INFO ] - Stream closed" 
RES=$? 
if [ $RES = 1 ] 
... 
+0

感谢。在RES之前我给了一个空间,这使得它成为一个未知的变量。空白空间是shell脚本的问题:P。非常感谢:) – R1234

+0

不客气。我经常犯这个错误。对我而言,另一个最常见的情况是在[之前]和之前没有为条件留下空间。请接受此答案以节省其他人的时间。 –

+0

,我昨天想通了:D – R1234