我寫了一個腳本來比較兩個數字:
#!/bin/bash
read X
read Y
if [[ $X -le $Y ]];
then
echo "X is less than Y"
elif [[ $X -ge $Y ]];
then
echo "X is greater than Y"
else
echo "X is equal to Y"
fi
由于某種原因,當X 和 Y 的值相同時,else不執行條件。而是if [[ $X -le $Y ]];被執行。
當我更改if和else條件的位置時:
#!/bin/bash
read X
read Y
if [[ $X -eq $Y ]];
then
echo "X is equal to Y"
elif [[ $X -ge $Y ]];
then
echo "X is greater than Y"
else
echo "X is less than Y"
fi
針對這種情況else執行條件。有人可以解釋一下為什么else對一種情況執行條件而不是另一種情況嗎?
uj5u.com熱心網友回復:
-le和和-ge一樣。<=>=
-le= 小于或等于-ge= 大于或等于-lt= 小于-gt= 大于
如果您切換到-ltand ,它將起作用-gt:
if [[ $X -lt $Y ]]
then
echo "X is less than Y"
elif [[ $X -gt $Y ]]
then
echo "X is greater than Y"
else
echo "X is equal to Y"
fi
您也可以(( ))用于算術運算。它具有更自然的語法:您可以使用<and >,運算子周圍不需要空格,$美元符號是可選的。
if ((X < Y))
then
echo "X is less than Y"
elif ((X > Y))
then
echo "X is greater than Y"
else
echo "X is equal to Y"
fi
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/492666.html
