Tôi đang cố gắng viết một tập lệnh sẽ kiểm tra hai cờ lỗi và trong trường hợp một cờ (hoặc cả hai) bị thay đổi, nó sẽ echo-- lỗi xảy ra. Kịch bản của tôi:Bash nếu câu lệnh có nhiều điều kiện sẽ phát ra lỗi
my_error_flag=0
my_error_flag_o=0
do something.....
if [[ "$my_error_flag"=="1" || "$my_error_flag_o"=="2" ] || [ "$my_error_flag"="1" && "$my_error_flag_o"="2" ]]; then
echo "$my_error_flag"
else
echo "no flag"
fi
Về cơ bản, nó phải là, cái gì đó dọc:
if ((a=1 or b=2) or (a=1 and b=2))
then
display error
else
no error
fi
Các lỗi tôi nhận được là:
line 26: conditional binary operator expected
line 26: syntax error near `]'
line 26: `if [[ "$my_error_flag"=="1" || "$my_error_flag_o"=="2" ] || [ "$my_error_flag"="1" && "$my_error_flag_o"="2" ]]; then'
có dấu ngoặc của tôi sai lầm?
Kiểm tra này ra: http: //theunixshell.blogspot.com/2013/ 05/list-of-bash-conditional-statements.html – Vijay
Sử dụng dấu ngoặc đơn -() –
Xem thêm http://stackoverflow.com/questions/3826425/how-to-represent-multiple-conditions-in-a-shell- script – tripleee