曜日に基づいてIf-Elseクエリを使用する方法は?

曜日に基づいてIf-Elseクエリを使用する方法は?

問題:今日が木曜日であることを確認し、このケースの結果に基づいて他の作業を実行する必要があります。私は2つの異なるアプローチを試しました。

日付名を取得する:

DAYOFWEEK=$(date +"%a")
echo DAYOFWEEK: $DAYOFWEEK
if ["$DAYOFWEEK" == "Thu"]; 
then   
   echo YES
else
    echo NO
fi

日数を取得します。

DAYOFWEEK=$(date +"%u")
echo DAYOFWEEK: $DAYOFWEEK

if ["$DAYOFWEEK" == 4]; 
then
   echo YES
else
   echo NO
fi

どちらの場合も「はい」でなければなりませんが、出力は「いいえ」です。何が問題なの?

ベストアンサー1

問題は、空白が不足していることです。

[次のコードは、組み込みコマンドが==エイリアスとして受け入れられるシェルで実行されます=

if [ "$DAYOFWEEK" == 4 ];  then    echo YES; else    echo NO; fi

しかし、覚えておいてください(参照help testbash

  • ===正式に言及されておらず、文字列比較に使用する必要があります。
  • -eq少数算術テストの場合(ここでは何の影響もありませんが、たとえば数値的には同じですが、語彙的には異なる場合を比較する場合にdate +%u適用されます)。date +%d044

私が好む:

 if [ "${DAYOFWEEK}" -eq 4 ];  then    echo YES; else    echo NO; fi

通常、一日をもっと楽しむ必要があります。数字方法は電流への依存度が少ないためロケール。私のシステムでは、出力はdate +"%a"TodayですDo

おすすめ記事