[英]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.