Действительно ли возможно использовать переменные в фигурных скобках количества в Bash?

Я узнал меня:

при прокрутке вывода после того, как Вы пытаетесь назвать logwatch с - диапазон, Вы видите в запуске:

ОШИБКА: Диапазон '4 часа назад в течение того часа', не понятого

Эта система не имеет Даты:: модуль Manip, загруженный, и поэтому единственное допустимое - параметры диапазона, 'вчера', 'сегодня', или 'все'. Дата:: модуль Manip может быть установлен при помощи любого из:

apt-get install libdate-manip-perl
cpan -i 'Date::Manip'
perl -MCPAN -e 'install Date::Manip'

это занимает долгое время для установки, но затем оно работает

6
27.02.2014, 01:20
3 ответа
[117952]Ваша проблема в том, в каком порядке применяется расширение скобки и переменное расширение. Вы должны форсировать обратный порядок:[12218]
5
27.01.2020, 20:23
[12219]Расширение скобки выполняется перед любыми другими расширениями...[118390].[12220]Вместо этого можно использовать [118391]seq[118392]:[12221]
3
27.01.2020, 20:23

Расширение скобок происходит очень рано во время расширения (первым делом, на самом деле), до расширения переменных. Чтобы выполнить расширение скобок на результате расширения переменной, нужно использовать eval, но это, как правило, неудобно.

Простым способом итерации является использование переменной-счетчика.

for ((i = 1; i < 5; i++)); do echo -n $i" "; done

Чтобы добавить ведущие нули, можно отформатировать число с помощью printf:

for ((i = 1; i < 5; i++)); do printf "%03d " $i; done

Альтернативный трюк заключается в подсчете чисел, которые на десять больше, и удалении лишнего префикса.

delta=1000
for ((i = $((delta+1)); i < $((delta+5)); i++)); do echo -n "${i#1} "; done
3
27.01.2020, 20:23

Теги

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