[英]How to write multiple “and”, “or” conditions in a if-statement in shell?
我正在努力使這項工作。 我需要檢查col_numbers
和ok_numbers
是否相同,然后打印 WORKS 除非col_numbers
或ok_numbers
都為零。 我該如何測試? 我試過這個,但沒有得到預期的結果。
Condition1 ( I don't want to print `WORKS!` when both are zero though they both are equal):
ok_numbers=0
col_numbers=0
Condition2 (I want to print `WORKS!` because both are non-zero and equal):
ok_numbers=4
col_numbers=4
我在下面的代碼中缺少什么?
if [ ( ${col_numbers} -eq ${ok_numbers} ) -a (( ${col_numbers} -ne 0 ) -o ( ${ok_numbers} -ne 0 )) ]; then
echo "WORKS!"
fi
我認為您不能那樣使用()
。 在 bash 中,他們創建了一個子shell。
相反,我會做兩個測試條件(並簡化邏輯)。
#!/bin/bash -u
col_numbers="$1"
ok_numbers="$2"
if [ ${col_numbers} -eq ${ok_numbers} ] && [ ${col_numbers} -ne 0 ]
then
echo "WORKS!"
else
echo "False"
fi
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.