Bir değişkeni komut satırından nasıl ayarlarım?


80

Proxy'yi ayarlamak için aşağıdaki komutu denedim yaourt:

export ALL_PROXY=http://proxy.example.com:8080

Asıl soru vekilin nasıl açılacağı yaourt? Genel olarak, bir değişkenin değerini geçerli kabukta nasıl ayarlayabilirim?


7
Deneyinunset ALL_PROXY
coffeMug

@coffeMug bunu bir cevap haline getirebilir, ayrıca buradan bazı bilgiler çalmayı da düşünebilirsiniz: stackoverflow.com/a/12263914/1081936
terdon

Sık sık çalıştırmak bir komut varsa kabul edilen yanıt ek olarak, bu Bunun yerine ayarlamak veya kabuk oturumunun kalanında değişiklik değildir ediyorum bir ortam değişkeni kullanır hoşuna çalıştırabilirsiniz: $ ALL_PROXY=http://proxy.example.com:8080 yaourtsadece envvar belirleyeceği şeklinde komut çalıştırma. FOO=bar BAZ=batKomutun çalıştırılmasından önce istediğiniz kadar değişken koyabilirsiniz .
sadece

Yanıtlar:


113

Bir ortam değişkenini kaldırmak için,

unset ALL_PROXY

Bir ortam değişkeninin yalnızca bir programda ve başlattığı programda etkili olduğunu unutmayın. Bir ortam değişkenini bir kabuk penceresinde ayarlarsanız, diğer kabuk pencerelerini etkilemez.

Bir export ALL_PROXY=…başlatma dosyasına eklediyseniz , oradan kaldırın.

exportGeçerli kabukta hangi ortam değişkenlerinin ayarlandığını görmek için hiçbir argüman olmadan koşabilirsiniz .

Bir kabuk değişkenini o kabuk tarafından başlatılan programlarda kullanılabilir yapmak için export VAR, atamadan sonra çalıştırarak VAR=VALUEveya ikisini ( export VAR=VALUE) birleştirerek onu dışa aktarmanız gerektiğini unutmayın .


19

Bash kullanımında bağlı bir değişkeni ayarlamak için unset VARIABLE( unset ALL_PROXYsizin durumunuzda). Bu komut aslında değişkeni siler. Ayrıca bir değişkenin değerini boş bırakarak da ayarlayabilirsiniz.

VARIABLE=

veya

VARIABLE=""

Aradaki fark, ikinci komutun değişkeni silmemesidir. Farkı , ikame ederken belirsiz değişkenleri bir hata olarak görmeye zorlamak için -ubayrağı kullanarak görebilirsiniz set:

/home/user1> var=""
/home/user1> echo $var

/home/user1> set -u
/home/user1> echo $var

/home/user1> unset var
/home/user1> echo $var
-bash: var: unbound variable

Yukarıdaki örnekte bash var, yakın olan (değerinin ayarlanmasından sonra) beklenen hatadır (bunun ikinci yankı komutunda olmadığına dikkat ediniz, yani ya da vardeğeri olan bir değer ).emptynull


peki kabuk betiğimde bir değişken varsa ve bu dosyayı alırsam, onu nasıl kaldıracağım?
Abhinav

@Abhinav unsetkomut dosyasında kullanın . Aynısı geçerlidir.
coffeMug
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.