Bash
Bash 條件字元串和整數一起
我正在嘗試在如下語句中進行整數和字元串比較:
$ TimeHr=$(date +%_H) $ Time=Night $ echo TimeHr 1 $ if ((TimeHr>18 || TimeHr<5 )) && [ Time == "Night" ]; then echo "Night Time"; else echo "Day Time"; fi Day Time $ if ((TimeHr>18 || TimeHr<5 )) && [[ Time == "Night" ]]; then echo "Night Time"; else echo "Day Time"; fi Day Time
但它沒有列印正確的 if 分支。我應該如何修改它?
編輯:
我更喜歡
((
用於數值比較,因為程式碼看起來更容易理解。
我會將兩個條件合併為一個
if [[ ( $TimeHr -gt 18 || $TimeHr -lt 5 ) && $Time == "Night" ]]; then echo "Night Time"; else echo "Day Time"; fi Night Time
但是,您的原始測試有一個簡單的錯誤;在你需要使用的
[
和 測試中,而不僅僅是.[[``$variable``variable
所以
if ((TimeHr>18 || TimeHr<5 )) && [[ $Time == "Night" ]]; then echo "Night Time"; else echo "Day Time"; fi