2012-03-13 77 views
2

我想一個if語句在我的bash腳本,做:bash腳本「如果」語句調用帶有參數的函數

if [[ "$v" == "A" || my_func $x $y ]] ; then 

,但我得到的錯誤「有條件的二進制運算符預期」。 我試過在my_func調用中將參數放在參數的周圍,但仍然沒有好處。試圖玩eval,這也沒有幫助。

感謝您的任何幫助。

+0

'[[]]'是不是,如果語法部分; 'if'接受一個命令,'[[''恰好是一個可以作爲命令的內建函數,但並不是所有傳遞給'if'的東西都需要在'[[]]數字比較(數字比較應該使用'(())')。 – 2012-03-13 14:30:59

+0

我不明白你爲什麼使用[[而不是[在這裏。你可以簡單地做到:if [「$ v」= A] || my_func $ x $ y;然後...甚至'測試$ v = A || my_func $ x $ y && ...' – 2012-03-13 14:57:53

回答

7

你可以試試:

if [[ "$v" == "A" ]] || my_func $x $y ; then 
+1

謝謝。這工作完美。也是有史以來最快答案的紀錄! – user265330 2012-03-13 14:44:46