Могу ли я указать количество дней до конца месяца в crontab?

Токены, такие как export, declare и им подобные, явно используют имена переменных в качестве параметров. $ обычно можно понимать как означающее "значение", поэтому $variable означает "значение переменной". Возьмем этот набор команд:

foo=bar
bar=baz
export $foo
( echo "$foo" )

Здесь произойдет то, что вы получите одну пустую строку вывода. Это связано с тем, что в команде export $foo на самом деле bar (значение foo), поэтому фактическая выполняемая команда экспорт бар. Поскольку foo не экспортируется, его значение по умолчанию равно null. Однако, если бы последняя строка была:

( echo "$bar" )

Вы получили бы вывод baz, значение bar, которое было экспортированов будущие подоболочки.

Как правило, рекомендуется использовать слабые кавычки (""") вокруг всех ваших ссылок на переменные по причинам, включая, помимо прочего, ту, которую вы упомянули ( Например, если бы у нас было:

if [ $letter == a ]; then echo "ayyyy"; fi

, но буква были пусты, оболочка попытается выполнить

if [  == a ]

, что является синтаксической ошибкой, но с кавычками:

if [ "$letter" == a ];

становится

if [ "" == a ];

, что является допустимым.

1
04.01.2017, 15:56
1 ответ
0 23 * * 6 [ $(date +%e -d "next saturday") -gt 3 ] && /home/me/weekly.sh
0
28.01.2020, 01:04

Теги

Похожие вопросы