env - env
Käyttöjärjestelmä | Unix , Unix-tyyppinen , Inferno |
---|---|
Alusta | Monitasoinen |
Tyyppi | Komento |
Lisenssi | coreutils : GPLv3 + |
env
on shell komento varten Unix ja Unixin kaltaisissa käyttöjärjestelmissä . Sitä käytetään joko ympäristömuuttujien luettelon tulostamiseen tai toisen apuohjelman suorittamiseen muutetussa ympäristössä tarvitsematta muuttaa nykyistä ympäristöä. Käyttämällä env
muuttujia voidaan lisätä tai poistaa ja olemassa olevia muuttujia voidaan muuttaa määrittämällä niille uusia arvoja.
Käytännössä env
on toinen yleinen käyttö. Shell-komentosarjat käyttävät sitä usein oikean tulkin käynnistämiseen . Tässä käytössä ympäristöä ei tyypillisesti muuteta.
Historia
GNU: n ytimenenv
mukana toimitetun version ovat kirjoittaneet Richard Mlynarik, David MacKenzie ja Assaf Gordon. Se ilmestyi ensimmäisen kerran vuonna 4.4BSD , ja on osa POSIX.1 (jossa -i vaihtoehto).
GNU: n env on laajennettu käsittelemään signaaleja ja nykyistä hakemistoa. FreeBSD : n env tukee mukautettua hakupolua. Molemmista versioista löytyvät laajennukset sisältävät -u muuttujien asetusten poistamiseksi ja -S argumenttien jakamiseksi (lähinnä shebang-muodossa).
Esimerkkejä
Tulosta nykyisten ympäristömuuttujien joukko seuraavasti:
env
Uuden ympäristön luominen ilman olemassa olevia ympäristömuuttujia uudelle kuorelle:
env -i /bin/sh
Suorittamaan X sovellus xcalc ja on se näyttää eri näytöillä (eli modifioidun ympäristön onko määritetty muuttujan korvataan uusi arvo):
env DISPLAY=foo.bar:1.0 xcalc
Huomaa, että tämä env: n käyttö on usein tarpeetonta, koska useimmat kuoret tukevat ympäristömuuttujien asettamista komennon eteen:
DISPLAY=foo.bar:1.0 xcalc
env: tä voidaan käyttää myös komentosarjan hashbang- rivillä, jotta tulkki voidaan etsiä PATH: n kautta. Esimerkiksi tässä on Python- komentosarjan koodi :
#!/usr/bin/env python3
print("Hello, World!")
Tässä esimerkissä, /usr/bin/env
on koko polku on env
komento. Ympäristöä ei muuteta.
Huomaa, että tulkki on mahdollista määrittää käyttämättä env
antamalla python
tulkin koko polku . Tämän lähestymistavan ongelmana on, että eri tietokonejärjestelmissä tarkka polku voi olla erilainen. Käyttämällä sen sijaan env
kuten esimerkissä, tulkkia etsitään ja se sijaitsee komentosarjan suorituksen aikana (tarkemmin sanottuna env
järjestelmä kutsuu järjestelmää execvp
, joka suorittaa tulkin paikantamisen ja käynnistämisen). Tämä tekee komentosarjasta kannettavamman , mutta lisää myös riskiä, että väärä tulkki valitaan, koska se etsii vastaavuutta jokaisesta suoritettavan hakupolun hakemistosta. Se kärsii samasta ongelmasta myös siinä, että polku env
binääriin voi myös olla erilainen konekohtaisesti.
Katso myös
Viitteet
Ulkoiset linkit
- The Single UNIX Specification , Issue 7 from the Open Group : aseta ympäristö komentojen kutsulle - Commands & Utilities Reference,
- Inferno General -komennot Manual -
- env - manuaalinen sivu GNU coreutilsilta .
- OpenBSD General Commands Manual : ohjelman suorittaminen muokatussa ympäristössä -
- NetBSD General Commands Manual : aseta ja tulosta ympäristö -