Я пытаюсь выяснить, что это выражение означаетShell Script - Что это выражение означает, дата
expr \`date "+%j"\` % 2
Я знаю, что он смотрит на день года (например, сегодня 034), но то, что делает \' % 2
делать?
Я пытаюсь выяснить, что это выражение означаетShell Script - Что это выражение означает, дата
expr \`date "+%j"\` % 2
Я знаю, что он смотрит на день года (например, сегодня 034), но то, что делает \' % 2
делать?
Лучше использовать $()
-syntax, чем обратные кавычки, это более ясное и гибкие:
expr $(date +%j) % 2
выходов 0 и возвращает ложь, когда день года даже, выходы 1 и возвращает истину, если это странно. %
- оператор expr
modulo.
echo $((10#$(date +%j) % 2))
является почти эквивалентом команды, которая не требует внешнего expr
команды. Разница заключается в том, что с использованием echo
вы получаете всегда true как код возврата; выходы идентичны. 10#
необходимо, потому что в противном случае строка, начинающаяся с 0
(например, сегодняшняя 034
), будет интерпретирована как восьмеричное число.
Его можно использовать для реализации чего-то, что запускается каждый второй день. – hek2mgl