2012-04-23 34 views

Trả lời

19

Bạn hầu như đã nhận nó:

if [[ "$a" == "something" || ($n == 2 && "$b" == "something_else") ]]; then 

Trong thực tế, các dấu ngoặc đơn có thể được bỏ qua vì ưu tiên khai thác, vì vậy nó cũng có thể được viết như

if [[ "$a" == "something" || $n == 2 && "$b" == "something_else" ]]; then 
1
if [[ "$a" == "something" ]] || [[ $n == 2 && "$b" == "something_else" ]]; then 
    ... 
fi 
+4

POSIX shell conforming: 'if [" $ a "=" cái gì đó "-o \ ($ n -eq 2 -a" $ b "=" something_else "\)]; sau đó echo yes; fi' – Kaz

+0

Khá ngu ngốc như thế nào '[' không sử dụng '[' như là một dấu ngoặc đơn cho nhóm subexpressions, phải không. – Kaz

Các vấn đề liên quan