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'

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 ...


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?


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'"

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
TEMPXAUTH=$(xauth nlist) su -c 'xauth nmerge <<< "$TEMPXAUTH" && mozilla -CreateProfile newprofile'

Plik tymczasowy też by działał.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.