Два подхода:
/etc/sudoers
, чтобы разрешить пользователю выполнять sudo -u minecraft
, или конкретно sudo -u minecraft /home/minecraft/server/start.sh
, без пароля. sudo -u minecraft sleep 0
в своем скрипте перед командой tmux
. Это попросит вас ввести пароль. Последующие команды sudo
в течение следующих нескольких минут не будет требовать пароль. Если вы установите параметры оболочки extglob
и dotglob
в оболочке bash
с помощью
shopt -s extglob dotglob
, то шаблон example/!(.env)
будет соответствовать всем именам в каталоге example
, отличном от .env
.
Обратите внимание, что нам нужно установить dotglob
, чтобы разрешить шаблонам подстановки соответствующие скрытые имена.
Использование
rm -f example/!(.env)
попытается удалить эти совпадающие имена.
Если этот шаблон расширится до слишком большого количества имен, вы получите сообщение об ошибке "слишком длинный список аргументов". Запуск его в простом цикле был бы альтернативным решением :
.for name in example/!(.env); do rm -f "$name"; done
Связанный вопрос: