Запустите команду Linux с “su” и встройте переменную

Я пытаюсь создать профиль Mozilla для другого пользователя из командной строки с помощью su.

Когда я попробую от X, это будет работать.

su myuser -c 'mozilla -CreateProfile newprofile'

Но моя цель состоит в том, чтобы встроить это в сценарий, и она выполнится только в режиме командной строки. Если я пробую это из командной строки, Она также работает:

DISPLAY=1.0 mozilla -CreateProfile newprofile

Вопрос состоит в том, как встроить переменную "ДИСПЛЕЯ" в команду "su", вызвать, это перестало работать:

su myuser -c 'DISPLAY=1.0 mozilla -CreateProfile newprofile'
0
задан 08.09.2010, 15:47

5 ответов

Имейте Вас, попробовал это:

su myuser -c 'export DISPLAY=\"1.0\"; mozilla -CreateProfile newprofile'

Это должно действительно быть отправлено на superuser.com

Попробуйте тот вариант путем выхода из кавычек в переменном ДИСПЛЕЕ...

1
ответ дан 24.11.2019, 12:22

Это работает на меня:

su sh -c 'DISPLAY=1.0  echo $DISPLAY'

какова точно ошибка, которую Вы получаете?

0
ответ дан 24.11.2019, 12:22

Что относительно этого:

su myuser -c "sh -c 'DISPLAY=1.0 mozilla -CreateProfile newprofile'"
0
ответ дан 24.11.2019, 12:22

Решенный:

su - -c 'DISPLAY=1.0 mozilla -CreateProfile newprofile' myuser
0
ответ дан 24.11.2019, 12:22
TEMPXAUTH=$(xauth nlist) su -c 'xauth nmerge <<< "$TEMPXAUTH" && mozilla -CreateProfile newprofile'

Временный файл работал бы также.

0
ответ дан 24.11.2019, 12:22

Теги

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