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

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

su myuser -c 'mozilla -CreateProfile newprofile'

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

DISPLAY=1.0 mozilla -CreateProfile newprofile

Вопрос в том, как встроить переменную "DISPLAY" в команду "su", потому что это не получается:

su myuser -c 'DISPLAY=1.0 mozilla -CreateProfile newprofile'

5 ответов5

1

Вы пробовали это:

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

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

Попробуйте этот вариант, экранируя кавычки в переменной DISPLAY ...

0

Что насчет этого:

su myuser -c "sh -c 'DISPLAY=1.0 mozilla -CreateProfile newprofile'"
0

Решено:

su - -c 'DISPLAY=1.0 mozilla -CreateProfile newprofile' myuser
0
TEMPXAUTH=$(xauth nlist) su -c 'xauth nmerge <<< "$TEMPXAUTH" && mozilla -CreateProfile newprofile'

Временный файл тоже будет работать.

0

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

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

что именно ошибка вы получаете?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .