Мне нужно запустить набор команд, состоящий из циклов 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")

0
mikol 20 Окт 2019 в 22:50

1 ответ

Лучший ответ

Вы забыли точку с запятой, я бы так сделал!

su -c 'for var in 1 2 3 4 5; do echo $var; done' user
0
David Carrascal 20 Окт 2019 в 20:06