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

ただし、ブランチが正しい場合は印刷されません。どうすれば修正すればい​​いですか?


編集する:

((コードがわかりやすく見えるので、数値比較を好みます。

ベストアンサー1

二つの条件を一つにまとめましょう。

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

おすすめ記事