Tähän kysymykseen on jo vastaus täällä:

Kommentit

  • Tämä kysymys ei ole kopio. -linkitetty kysymys selittää DISPLAY env -muuttujan muodon ja merkityksen, kun taas tämä kysymys koskee " -määritystä env-muuttuja ja asianomainen ohjelma kirjoitetaan samalla rivillä ".

Vastaa

DISPLAY=:0 gnome-panel on komentokäsky, joka suorittaa ulkoisen komennon gnome-panel ympäristömuuttujan asetettu arvoon :0. Kuoren syntakse VARIABLE=VALUE COMMAND asettaa ympäristömuuttujan VARIABLE vain määritetyn komennon ajaksi. Se vastaa karkeasti kohdetta (export VARIABLE=VALUE; exec COMMAND).

Ympäristömuuttuja DISPLAY kertoo GUI-ohjelmille kuinka kommunikoida GUI: n kanssa. Unix-järjestelmä voi käyttää useita X-palvelimia , eli useita näyttöjä. Nämä näytöt voivat olla fyysisiä näyttöjä (yksi tai useampi näyttö) tai etänäyttöjä (edelleenlähetetty verkon kautta, esim. SSH: n kautta) tai virtuaalisia näyttöjä, kuten Xvfb , jne. Näyttöjen määrittelyn perussyntaksi on HOST:NUMBER; jos jätät HOST -osan pois, näyttö on paikallinen.

Näytöt on numeroitu 0: sta, joten :0 on ensimmäinen paikallinen näyttö, joka aloitettiin. Tyypillisissä asennuksissa tämä näkyy tietokoneen näytöissä.

Kuten kaikki ympäristömuuttujat, DISPLAY peritään vanhemman prosessista lapselle Esimerkiksi kun kirjaudut GUI-istuntoon, sisäänkirjautumisen hallinta tai istunnon aloittaja asettaa DISPLAY -asetuksen asianmukaisesti, ja muuttuja peritään kaikki istunnon ohjelmat. Kun avaat SSH-yhteys X-edelleenlähetyksen avulla SSH asettaa ympäristömuuttujan DISPLAY edelleenlähetettyyn yhteyteen siten, että etälaitteella suorittamasi ohjelmat näkyvät paikallisessa koneessa. ei edelleenlähetettyä X-yhteyttä (joko siksi, että SSH on määritetty olemaan tekemättä sitä tai koska ei ole paikallista X-palvelinta), SSH ei aseta DISPLAY.

Asetus DISPLAY aiheuttaa nimenomaisesti ohjelman näyttämisen paikassa, jossa se normaalisti ei olisi. Esimerkiksi, jos DISPLAY=:0 gnome-panel suoritetaan SSH: ssa yhteys tähti ts Gnome-paneeli etäkoneen paikallisnäytössä (olettaen, että sellainen on ja että käyttäjällä on oikeus käyttää sitä). DISPLAY=:0 -asetuksen nimenomainen asettaminen on yleensä tapa käyttää koneen paikallista näyttöä paikallisen istunnon ulkopuolelta, kuten etäkäytön kautta tai cron-työstä.

Vastaus

Se on ympäristömuuttuja, joka välitetään vain kyseiselle ohjelmalle eikä koko kuorelle. Näin tapahtuu, kun asetat muuttujan samalla rivillä komennon kanssa.

X11-ohjelmien on tiedettävä, missä ikkunat näytetään, koska se on asiakas- / palvelinjärjestelmä ja saatat näyttää sitä etäkoneella. Tämä tarkoittaa yksinkertaisesti paikallisen koneen ensimmäisen näytön käyttämistä.

Tämä määritetään yleensä automaattisesti, kun kirjaudut sisään työpöytäympäristöön. Avaa esimerkiksi graafinen pääte ja kirjoita echo $DISPLAY.

Kommentit

  • antaa bash-syntaksin tehtävän env-muuttujalle ja asianomainen ohjelma kirjoitetaan samalla rivillä, ja erotettu välilyönnillä?
  • Kyllä, se ' on täsmälleen sama kuin sanoit kysymyksessä.
  • @Tim All POSIX -yhteensopivat kuoret Se tarkoittaa, että asetetaan ja viedään ympäristömuuttuja vain tälle yhdelle komennolle, mutta ei vaikuta jälkikäteen shell-muuttujan arvoon (jos sillä on jo arvo).
  • @MarkPlotnick – it ' sa vähän enemmän hienorakeisempi kuin se. Kun etuliitetän muuttujalauseke mihin tahansa komentoon, mutta komentotulkkitoimintoon tai erityiseen sisäänrakennettuun ilmoitukseen, ilmoituksen ei tulisi vaikuttaa komentotulkin ' määritelmään spec ' d var, mutta tehdessään sitä jommallekummalle näistä POSIXista, muuttuja-ilmoituksen tulisi pysyä kiinni. Joten, POSIXLY, one=$1 shift tulisi määritellä samanaikaisesti nykyinen kuorimuuttuja $one, jotta se voisi olla sama kuin nykyinen kuori ' ensimmäinen asento samalla kun poistat mainitun sijainnin. bash, muuten, rikkoo oletuksena spesifikaation.
  • @mikeserv Kiitos kuten aina tarkemman ja oikeamman kuvauksen käytöstä.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *