2011-10-01 137 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