Mulai perintah linux dengan "su" dan variabel inline


0

Saya mencoba membuat profil mozilla untuk pengguna lain dari command line menggunakan su.

Ketika saya mencoba dari X, ini akan berhasil.

su myuser -c 'mozilla -CreateProfile newprofile'

Tetapi tujuan saya adalah untuk menanamkan ini ke skrip dan hanya akan dieksekusi dalam mode baris perintah. Jika saya mencoba ini, dari baris perintah, Ini juga berfungsi:

DISPLAY=1.0 mozilla -CreateProfile newprofile

Pertanyaannya adalah bagaimana menanamkan variabel "DISPLAY" dalam perintah "su", karena ini gagal:

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

Mengapa "linux" dalam judul jika Anda mengatakan Anda menjalankan SCO Unix?
grawity

Jawaban:


1

Sudahkah Anda mencoba ini:

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

Ini harus benar-benar diposting di superuser.com

Coba varian itu dengan keluar dari tanda kutip di variabel DISPLAY ...


Ya, saya sudah mencobanya. Gagal juga.

0

Ini bekerja untuk saya:

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

apa sebenarnya kesalahan yang Anda dapatkan?


Sayangnya, ini tidak berhasil untuk saya. Mungkin karena OS saya - SCO Unix. Kesalahan hanya beberapa peringatan perl dari 'lokal', tapi saya mendapatkannya juga dalam mode X, jadi ini bukan alasannya. Perintah Mozilla selesai, tetapi tanpa membuat profil.
user48777

1
SCO Unix? Menghormati.
Janne Pikkarainen

0

Bagaimana dengan yang ini:

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

Tidak, gagal juga.
user48777

Dan apa yang dikeluhkan?
cYrus

Itu tidak mengeluh. selesai dengan rapi, tetapi direktori profil tidak dibuat. Sudahlah, saya memecahkan masalah. Terima kasih atas balasannya
user48777


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

File sementara juga akan berfungsi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.