Bash
如何grep儲存在變數中的值
我正在編寫一個 bash 腳本,其中我將目前日期儲存在一個變數中,然後我正在對該變數進行 greping。問題是它不起作用
currentdate= $(date +%b\ %d) echo "$currentdate" last |grep -E '$currentdate'>> /usr/IBM/HTTPServer7/logs/alert/users.txt
users.txt
顯示為空。如果我手動編寫目前日期,那麼它可以工作。我究竟做錯了什麼?
除了引號之外,您還需要考慮
last
命令使用的日期格式,如下所示:Dec 3 # Note the padding to the left of '3'. Nov 23
這需要稍微不同的 date 命令:
date "+%b %_d" Dec 4
下劃線指示
date
用空格填充欄位。您也可以使用 %e 作為替代方案。將這些放在一起,您可以修改腳本,如下所示:
currentdate=$(date "+%b %_d") last | grep "$currentdate" >> /usr/IBM/HTTPServer7/logs/alert/users.txt