変数に格納されている値をgrepする方法[閉じる]

変数に格納されている値をgrepする方法[閉じる]

現在の日付を変数に保存してから変数をgrepするbashスクリプトを作成しています。問題はそれがうまくいかないということです

currentdate= $(date +%b\ %d)
echo "$currentdate"
last |grep -E '$currentdate'>> /usr/IBM/HTTPServer7/logs/alert/users.txt

users.txt空白としてマークされます。現在の日付を手動で書くと機能します。私は何が間違っていましたか?

ベストアンサー1

引用符に加えて、last次のようにコマンドで使用される日付形式も考慮する必要があります。

Dec  3    # Note the padding to the left of '3'.
Nov 23

これには少し異なる日付コマンドが必要です。

date "+%b %_d"
Dec  4

下線は、フィールドdateにスペースを埋める必要があることを示します。代わりに%eを使用することもできます。

これをまとめると、次のようにスクリプトを変更できます。

currentdate=$(date "+%b %_d")
last | grep "$currentdate" >> /usr/IBM/HTTPServer7/logs/alert/users.txt

おすすめ記事