Önce VAR değişkenini dışa aktarmak için en mantıklı ve çalışma yolu gibi görünmektedir:
. ./export.bash
veya
source ./export.bash
Şimdi ana kabuktan yankılanırken işe yarıyor
echo $VAR
HELLO, VARABLE
Şimdi VAR'ı sıfırlayacağız
export VAR=""
echo $VAR
Şimdi değişkeni kaynaklamak için bir komut dosyası yürütecağız ve ayarını kaldıracağız:
./test-export.sh
HELLO, VARABLE
--
.
kodu: kedi test-export.sh
#!/bin/bash
# Source env variable
source ./export.bash
# echo out the variable in test script
echo $VAR
# unset the variable
unset VAR
# echo a few dotted lines
echo "---"
# now return VAR which is blank
echo $VAR
İşte bir yol
LÜTFEN AKLINIZDA BULUNDURUN: Dışa aktarmalar ana konsolunuzda dışa aktarmayı yürüten komut dosyasıyla sınırlıdır. kabuğundan koş:
Komut isteminizde (export.bash öğesinin birden çok yankı değeri olduğu sürece)
IFS=$'\n'; for entries in $(./export.bash); do export $entries; done; ./v1.sh
HELLO THERE
HI THERE
kedi v1.sh
#!/bin/bash
echo $VAR
echo $VAR1
Artık bu kullanımınız için olduğu sürece - böyle bir bash takma adı yaparak değişkenleri komut dosyalarınız için istediğiniz zaman kullanılabilir hale getirebilirsiniz:
myvars ./v1.sh
HELLO THERE
HI THERE
echo $VAR
.
bunu .bashrc'nize ekleyin
function myvars() {
IFS=$'\n';
for entries in $(./export.bash); do export $entries; done;
"$@";
for entries in $(./export.bash); do variable=$(echo $entries|awk -F"=" '{print $1}'); unset $variable;
done
}
kaynak bashrc dosyanızı ve istediğiniz zaman yukarıdaki gibi yapabilirsiniz ...
Her neyse geri kalanına ...
Bu, global olarak kullanılabilir hale getirdikten sonra betiği çalıştırdı.
sadece yankılamak sonra yankı ihracat çalıştırın!
kedi ihracatı
#!/bin/bash
echo "VAR=HELLO THERE"
Şimdi komut dosyasında veya konsolunuz şu şekilde çalışıyor:
export "$(./export.bash)"
Deneyin:
echo $VAR
HELLO THERE
Yukarıdaki yöntemi kullanarak başka bir komut dosyasında ne beklediğinizi bildiğiniz sürece birden çok değer:
kedi ihracatı
#!/bin/bash
echo "VAR=HELLO THERE"
echo "VAR1=HI THERE"
kedi testi-export.sh
#!/bin/bash
IFS=$'\n'
for entries in $(./export.bash); do
export $entries
done
echo "round 1"
echo $VAR
echo $VAR1
for entries in $(./export.bash); do
variable=$(echo $entries|awk -F"=" '{print $1}');
unset $variable
done
echo "round 2"
echo $VAR
echo $VAR1
Şimdi sonuçlar
./test-export.sh
round 1
HELLO THERE
HI THERE
round 2
.
ve otomatik atama için son son güncelleme VARIABLES'i okuyun:
./test-export.sh
Round 0 - Export out then find variable name -
Set current variable to the variable exported then echo its value
$VAR has value of HELLO THERE
$VAR1 has value of HI THERE
round 1 - we know what was exported and we will echo out known variables
HELLO THERE
HI THERE
Round 2 - We will just return the variable names and unset them
round 3 - Now we get nothing back
Komut dosyası: cat test-export.sh
#!/bin/bash
IFS=$'\n'
echo "Round 0 - Export out then find variable name - "
echo "Set current variable to the variable exported then echo its value"
for entries in $(./export.bash); do
variable=$(echo $entries|awk -F"=" '{print $1}');
export $entries
eval current_variable=\$$variable
echo "\$$variable has value of $current_variable"
done
echo "round 1 - we know what was exported and we will echo out known variables"
echo $VAR
echo $VAR1
echo "Round 2 - We will just return the variable names and unset them "
for entries in $(./export.bash); do
variable=$(echo $entries|awk -F"=" '{print $1}');
unset $variable
done
echo "round 3 - Now we get nothing back"
echo $VAR
echo $VAR1