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