Мне нужно запустить набор команд, состоящий из циклов for, в моем скрипте с конкретным пользователем. Я не знаю, как это сделать без расширения переменной, как, например, здесь:
su -c "for var in 1 2 3 4 5; do echo '$var' done" someuser
Есть ли способ добиться того, чего я хочу? Я думал о запуске цикла с большим количеством вызовов su
, но это кажется довольно плохим.
РЕДАКТИРОВАТЬ: Как кто-то заметил в комментариях, var
не расширяется, но я получаю сообщение об ошибке: sh: 1: Syntax error: end of file unexpected (expecting "done")
1 ответ
Вы забыли точку с запятой, я бы так сделал!
su -c 'for var in 1 2 3 4 5; do echo $var; done' user
Похожие вопросы
Новые вопросы
bash
Для вопросов о скриптах, написанных для командной оболочки Bash. Для сценариев оболочки с ошибками / синтаксическими ошибками, пожалуйста, проверьте их с помощью программы shellcheck (или на сервере веб-проверки оболочки по адресу https://shellcheck.net) перед размещением здесь. Вопросы об интерактивном использовании Bash, скорее всего, будут касаться темы Super User, а не переполнения стека.