簡體   English   中英

外殼腳本錯誤

[英]shell script error

我在shell腳本中有以下一行:

if [ -f /etc/init.d/tomcat6 && ps -C java|grep -qs 'java' ]; then

當我嘗試運行它時會引發以下錯誤:

line 12: [: missing `]'

我感覺這是一個編碼問題,因為我一直在Windows XP PC上的Notepadd ++中編輯文件,所以我確保已將編碼設置為在沒有BOM的情況下以UTF-8編碼,並且所有行尾是linux風格,但我仍然收到此錯誤。

有人可以幫忙嗎?

謝謝

嘗試

if [ -f /etc/init.d/tomcat6 ] && ps -C java | grep -qs 'java'; then
    ...
fi

[基本上是test命令的別名。 test不知道關於參數ps任何信息。 或者,您可以顯式使用test (只是為了闡明語法):

if test -f /etc/init.d/tomcat6  && ps -C java | grep -qs 'java'; then
    ...
fi

如果使用[而不是test ,則必須以]結尾表達式。

&&結束您的[命令。

if [ -f /etc/init.d/tomcat6 ] && ps -C java | grep -qs 'java'; then

對於語法-a

您需要運行ps -C java|grep -qs 'java' ,它當前被評估為表達式。 嘗試這個:

if [ -f /etc/init.d/tomcat6 -a $(ps -C java|grep -qs 'java') ]; then

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM