Nếu muốn thể hiện bài kiểm tra sau trong shell (sh):
if ( a == 1 && ( b == 1 || b == 2 )) { ... }
Cho đến nay, điều tốt nhất tôi có thể viết là thế này:
if [[ $a -eq 1 ]]; then
if [[ $b -eq 1 || $b -eq 2 ]]; then
...
fi
fi
Tôi không biết cách ghép && và || với quyền ưu tiên chính xác. Googling đã không cho tôi bất kỳ câu trả lời nào (hướng dẫn chỉ đưa ra các ví dụ cơ bản, nếu có)
Cú pháp để kết hợp cả hai nếu thành một là gì?
ksh
? Sau đó, mã ban đầu của bạn sẽ chỉ cần thêm một cặp dấu ngoặc đơn:if (( a == 1 && ( b == 1 || b == 2 ))); then :; fi