2012-09-24 38 views
0

我設置了一個shell腳本讀取使用日誌文件的最後一行:這是echo'ing劇本就好了最後一行Linux shell腳本 - 將尾部值賦給變量?

tail -1 "/path/to/gdscript.log" 

...。日誌的最後一行決定的過程是成功還是失敗,所以我想如下運行快速回波(這是我在失敗的位):

if [ (tail -1 "/path/to/gdscript.log") == "Process Complete" ]; then 
echo "Data Transfer OK" 
else 
echo "Data Transfer Failed" 
exit 1 
fi 

..但使用上面的腳本我越來越:

./gdscript.sh: line 14: syntax error near unexpected token `tail' 

那些知道的人能告訴我如何格式化上面的IF門,這樣我可以工作過的日誌文件的最後一行?我是shell腳本新手,非常感謝他們的幫助。

感謝, 保羅摹

回答

4

要得到你需要$(cmd...)一個命令的輸出。所以我覺得你的意思是:

if [ "$(tail -1 '/path/to/gdscript.log')" == "Process Complete" ]; then 
... 
+0

這不工作 - 現在越來越「./gdscript.sh:第12行:[:參數太多」有問題的行。還有什麼我可以嘗試? – PaulG

+0

@PaulG - 參數擴展需要在'['裏面引用。問題是,當tail命令什麼都不返回時,你會得到'if [==「foo」]'。如果你使用'[['',而不用擔心分詞。我在答案中解決了這個問題。 – jordanm

+0

這是我排序 - 感謝jordanm – PaulG

0

你應該使用:
if [ $(tail -1 /path/to/gdscript.log) == "Process Complete" ]; then