Расширенная подстановка внутри скрипта -что я делаю не так?

Кто сказал, что нужно вообще файлы менять? ☺

find /etc/systemd/service/ -maxdepth 1 -name 'myapp.*.service' |
while read -r i
do
    printf '[Service]\nUser=%s\n' 'Bar' > ${i}.d/change-user.conf
done

Таким образом несколько проще получить определение ванильного сервиса.

rm -- /etc/systemd/service/myapp.*.service.d/change-user.conf

Сделать все это одним файлом , применимым ко всей группе сервисов, — это, конечно, простое упражнение по использованию жестких ссылок.

install -d /etc/systemd/temp
printf '[Service]\nUser=%s\n' 'Bar' > /etc/systemd/temp/change-user.conf
find /etc/systemd/service/ -maxdepth 1 -name 'myapp.*.service' |
while read -r i
do
    ln /etc/systemd/temp/change-user.conf ${i}.d/change-user.conf
done

Это, конечно, официальный способ сделать такого рода вещи с пакетом -, поставляемым и во время выполнения -, сгенерированными модулями, кроме того. Вы должны , а не изменять такие юнит-файлы.

Дополнительная литература

  • Леннарт Поттеринг (2013 -10 -07 ).systemd.unit. справочные страницы systemd. freedesktop.org.

2
09.04.2020, 18:45
1 ответ

Вместо переменной можно использовать присваивание массива.

shopt -s nullglob  ##: just in case there is non match for the glob.

glob=(*2020_04_03_{06..18}.jpg) ##: This will expand the glob * and brace expansion.

/bin/ls -la /mnt/drive1/images/*/*/"${glob[@]}"
  • Это должно работать для вашего примера кода.

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

  • Добавьте параметр оболочки failglob, если вы хотите увидеть ошибку и выйти с не -нулем, если нет подходящего шаблона.

1
28.04.2021, 23:18

Теги

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