Çevresel değişkenleri nasıl eklerim?

221

Ubuntu 11.04 koşuyorum. Bir bash oturumu başlatmak için terminali kullanıyorum ve bir ortam değişkeni eklemek istiyorum:

[email protected]:~$ env THEVAR=/example

Ama çalışmıyor. Son değişken olan THEVAR ile tüm değişkenleri gösterir, ancak% co_de değerine başka bir çağrı env değerini göstermez THEVAR hiçbir şey döndürmez.

Benzer şekilde, dışa aktarma içeren komut dosyaları ( env | grep THEVAR ) veya diğer değişken atamalar ( export THEVAR=/example ) ortam değişkenini eklemez.

Biliyorum yanlış bir şey yapıyorum, basit bir şey olması gerektiğini biliyorum, ama ne olduğunu bulamıyorum.

GÜNCELLEME: Benim sorumun asıl anlamı şuydu: İşte

(Her neyse en çok oy alan cevabı seçeceğim ve düzenlenmiş başlığı bırakacağım -ki sormadığım şeyden ayrılmayacağım.)

THEVAR=/example , değiştirilen bir ortamda bir program çalıştırıyor, ardından tüm değişiklikleri reddediyor.

    
sordu huff 27.08.2011 02:22

5 cevap

357

Geçerli kabuk için değişkenini ayarlamak için:

VARNAME="my value"

Mevcut kabuk için ayarlayın ve mevcut kabuktan tüm işlemler başlatıldı:

export VARNAME="my value"      # shorter, less portable version

Gelecekteki tüm bash oturumları için kalıcı olarak ayarlamak için, .bashrc dizininizdeki $HOME dosyanıza bu satırı ekleyin.

Kalıcı olarak ayarlamak ve sistem genelinde (tüm kullanıcılar, tüm işlemler) / etc / environment set değişkenini ekleyin:

sudo -H gedit /etc/environment

Bu dosya aşağıdaki gibi yalnızca değişken atamaları kabul eder:

VARNAME="my value"

export anahtar kelimesini burada kullanmayın.

Geçerli kullanıcılardan çıkış yapmanız ve ortam değişkenleri değişikliklerinin gerçekleşmesi için tekrar giriş yapmanız gerekiyor.

    
verilen cevap Michał Šrajer 27.08.2011 09:50
21

Bir ortam değişkenini bir kez ayarlamak için, komut dosyasında değil, komut isteminde export komutunu kullanın:

$ export THEVAR=/example

Değişken kabuk oturumunun geri kalanı veya ayarlanana kadar ayarlanır.

Her zaman bir ortam değişkeni ayarlamak için, export dosyasındaki .bashrc komutunu (veya kabuğunuz için uygun başlatma dosyasını) kullanın.

Bir komut dosyasından bir ortam değişkeni ayarlamak için, komut dosyasındaki export komutunu kullanın ve sonra komut dosyasının source 'sini kullanın. Komut dosyasını çalıştırırsanız çalışmaz.

Kaynak kullanımı ile yürütme arasındaki farkın açıklanması için şu cevaba bakınız: İşte

    
verilen cevap lesmana 27.08.2011 09:20
15

Ubuntu'da kalıcı olarak yeni bir ortam değişkeni eklemek için (yalnızca 14.04'te test edilmiştir), aşağıdaki adımları kullanın:

  1. Bir terminali açın ( Ctrl Alt T tuşlarına basarak)
  2. sudo -H gedit /etc/environment
  3. Şifrenizi yazın
  4. Yeni açılan metin dosyasını düzenleyin:
    Örneğin. FOO=bar değerini eklemek istiyorsanız, yeni bir satıra FOO=bar yazmanız yeterlidir
  5. Kaydet
  6. Bir kez kaydedildi, çıkış yap ve tekrar giriş yap.
  7. Gerekli değişiklikleriniz yapıldı.
verilen cevap user355501 07.12.2014 09:45
3

Komut tamamlandıktan sonra ortam / var değişikliklerinin devam etmesini sağlamak için source ./script.sh veya kaynak için kısa no gösterimini kullanmanız gerekir, ".", . ./script.sh

gibi

Kaynak, komut dosyasındaki komutları, eğer siz yazmışsınızmış gibi yürütür ... böylece komutun bazı yönlerini değiştirir, örneğin çıkma gibi ... böylelikle komut dosyanız bir şeyi kontrol ederse ve yanlış ise çıkmaya karar verirse, Örneğin, exit 0 araması ile mevcut terminal / kabuk oturumunuzu sonlandıracak.

    
verilen cevap m0bl 16.03.2018 16:09
1

Komut dosyası aracılığıyla bir şeyler yapıyorsanız, ortam değişkenini kalıcı olarak ayarlamanın kolay bir yolu komut dosyanızın altına aşağıdaki ifadeyi koymaktadır,

if [[ ! -d "$MyVar" ]]; then 
    export MyVar="abc"
    echo 'export MyVar="abc"' >> ~/.bashrc
fi

pwd gibi ifadeleri değerlendirmeniz gerekiyorsa, bunu kullanabilirsiniz, örneğin,

echo "export EIGEN_ROOT=\"$(pwd)/eigen\"" >> ~/.bashrc
    
verilen cevap ShitalShah 12.07.2017 04:06

Etiketlerdeki diğer soruları oku