0
我是shell腳本的新手。我試圖運行以下,但它給我語法錯誤。哪裏不對?在unix shell腳本中使用測試-a時出現語法錯誤
[[ $# -gt 0 -a $(file -b $1) != 'JPEG'* ]]
我是shell腳本的新手。我試圖運行以下,但它給我語法錯誤。哪裏不對?在unix shell腳本中使用測試-a時出現語法錯誤
[[ $# -gt 0 -a $(file -b $1) != 'JPEG'* ]]
好吧,讓我們來看看:
$ shellcheck myscript
In myscript line 1:
[[ $# -gt 0 -a $(file -b $1) != 'JPEG'* ]]
^-- SC2108: In [[..]], use && instead of -a.
你去那裏。這裏有一個完整的示例(帶自己的測試文件):
#!/bin/bash
if [[ $# -gt 0 && $(file -b $1) != 'JPEG'* ]]
then
echo "true"
else
echo "false"
fi
在行動:
$ chmod +x myscript
$ ./myscript
false
$ ./myscript test.jpg
false
$ ./myscript test.pdf
true
'-a'意味着 「邏輯和」 與'test',或'['命令,但用'[[''表示「對象可訪問」)。使用'&&' – cdarke