İhracat kaynak olmadan bir bash script çevre değişkeni
bu senaryo varsayalım
verme.bash:
#! /usr/bin/env bash
export VAR="HELLO, VARABLE"
senaryo yürütmek, $VAR
erişim için deneyin değer !
echo $VAR
Sadece yürütme tarafından $VAR
erişim için herhangi bir yolu varverme.bashbu kaynak olmadan ?
CEVAP
Sadece kaynak olmadan
export.bash
yürüterek$VAR
erişim için herhangi bir yolu var mı ?
Hızlı cevap: Hayır.
Ama birkaç olası geçici çözümler vardır.
Zaten bahsettiniz ki en bariz olanı,, source
.
arama kabuğu bağlamında komut dosyası yürütmek için kullanın
$ cat set-vars1.sh
export FOO=BAR
$ . set-vars1.sh
$ echo $FOO
BAR
Başka bir yol senaryoyu sahip olmak yerine, bir ortam değişkeni, bir ortam değişkeni ayarlamak olacaktır yazdırma komutları: ayardır
$ cat set-vars2.sh
#!/bin/bash
echo export FOO=BAR
$ eval $(./set-vars2.sh)
$ echo $FOO
BAR
$(...)
tek bir satıra çıktı katılacak unutmayın. Eğer ayarlamak için birden fazla şey varsa, hala bir araya edildikten sonra geçerli yani onlar da baskılı komutları noktalı virgül eklemek gerekir.
Üçüncü bir yaklaşım, dahili ortam değişkenini ayarlar ve sonra da bu ortam ile belirtilen komutu çağıran bir komut dosyası var
$ cat set-vars3.sh
#!/bin/bash
export FOO=BAR
exec "$@"
$ ./set-vars3.sh printenv | grep FOO
FOO=BAR
Bu son yaklaşım olabilir oldukça kullanışlı, gerçi bu çok müsait etkileşimli kullanmak beri vermez ayarları mevcut: shell (tüm diğer ayarlar ve Tarih oldun inşa).
Ayar Mac OS X çevre değişkeni ANDROİD_...
Zaman aşımı gereksiz gecikme olmadan b...
Parallelize Bash süreçlerin azami sayı...
Ne kadar ileri bash script içinde başk...
Dönüş bash script değer...