SORU
17 Mayıs 2013, Cuma


İ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
17 Mayıs 2013, Cuma


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).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • akalyne

    akalyne

    13 Mayıs 2009
  • Jaclyn W

    Jaclyn W

    5 Mayıs 2006
  • FusioNGamiing

    FusioNGamiin

    10 Temmuz 2007