В дополнение к кавычкам также необходимо учитывать формат даты, используемый командой 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
@Sparhawk прав.
Двойные кавычки заставляют оболочку раскрывать переменные.
$ VAR=blahblah
$ echo "$VAR"
blahblah
Одинарные кавычки заставляют оболочку использовать текст буквально.
$ VAR=blahblah
$ echo '$VAR'
$VAR
Вы можете использовать это, если хотите, чтобы оболочка не считала знак доллара плюс какой-то другой текст переменной.
echo 'This script is terminating because you didn't set $IMPORTANT_VARIABLE'
Без одинарных кавычек приведенное выше сообщение не будет выводиться должным образом.