Uruchom komendę Linux z „su” i zmienną wbudowaną

0

Próbuję utworzyć profil Mozilli dla innego użytkownika z wiersza poleceń za pomocą su.

Kiedy próbuję z X, to zadziała.

su myuser -c 'mozilla -CreateProfile newprofile'

Ale moim celem jest osadzenie tego w skrypcie i będzie on wykonywany tylko w trybie wiersza poleceń. Jeśli spróbuję tego, z wiersza poleceń, działa to również:

DISPLAY=1.0 mozilla -CreateProfile newprofile

Pytanie brzmi: jak osadzić zmienną „DISPLAY” w poleceniu „su”, ponieważ to się nie udaje:

su myuser -c 'DISPLAY=1.0 mozilla -CreateProfile newprofile'
użytkownik48777
źródło
Dlaczego w tytule jest „linux”, jeśli mówisz, że używasz SCO Unix?
grawity

Odpowiedzi:

1

Czy próbowałeś tego:

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

To naprawdę powinno być opublikowane na superuser.com

Wypróbuj ten wariant, unikając cudzysłowów w zmiennej DISPLAY ...

t0mm13b
źródło
Tak, próbowałem. To też zawodzi.
0

To działa dla mnie:

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

jaki dokładnie błąd się pojawia?

ennuikiller
źródło
Niestety to nie działa dla mnie. Może z powodu mojego systemu operacyjnego - SCO Unix. Błędy to tylko niektóre ostrzeżenia Perla z „ustawień regionalnych”, ale mam je również w trybie X, więc to nie jest powód. Komenda Mozilli kończy się, ale bez tworzenia profilu.
user48777,
1
SCO Unix? Szacunek.
Janne Pikkarainen
0

A co z tym:

su myuser -c "sh -c 'DISPLAY=1.0 mozilla -CreateProfile newprofile'"
Cyrus
źródło
Nie, to też zawodzi.
user48777,
A co narzeka?
cyr
Nie narzeka. kończy się czysto, ale katalog profilu nie jest tworzony. Nieważne, rozwiązałem problem. Dzięki za odpowiedź.
user48777,
0

Rozwiązany:

su - -c 'DISPLAY=1.0 mozilla -CreateProfile newprofile' myuser
użytkownik48777
źródło
0
TEMPXAUTH=$(xauth nlist) su -c 'xauth nmerge <<< "$TEMPXAUTH" && mozilla -CreateProfile newprofile'

Plik tymczasowy też by działał.

grawitacja
źródło