2017-02-03 4 views
0

Я пытаюсь выяснить, что это выражение означаетShell Script - Что это выражение означает, дата

expr \`date "+%j"\` % 2 

Я знаю, что он смотрит на день года (например, сегодня 034), но то, что делает \' % 2 делать?

+0

Его можно использовать для реализации чего-то, что запускается каждый второй день. – hek2mgl

ответ

2

Лучше использовать $() -syntax, чем обратные кавычки, это более ясное и гибкие:

expr $(date +%j) % 2 

выходов 0 и возвращает ложь, когда день года даже, выходы 1 и возвращает истину, если это странно. % - оператор expr modulo.

echo $((10#$(date +%j) % 2)) 

является почти эквивалентом команды, которая не требует внешнего expr команды. Разница заключается в том, что с использованием echo вы получаете всегда true как код возврата; выходы идентичны. 10# необходимо, потому что в противном случае строка, начинающаяся с 0 (например, сегодняшняя 034), будет интерпретирована как восьмеричное число.

Смежные вопросы