Untuk mengekspor variabel VAR terlebih dahulu, cara yang paling logis dan berfungsi adalah dengan mengambil variabel:
. ./export.bash
atau
source ./export.bash
Sekarang ketika menggema dari shell utama berfungsi
echo $VAR
HELLO, VARABLE
Kami sekarang akan mereset VAR
export VAR=""
echo $VAR
Sekarang kita akan menjalankan skrip untuk sumber variabel kemudian hapus itu:
./test-export.sh
HELLO, VARABLE
--
.
kode: cat 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
Ini satu cara
TOLONG DICATAT: Ekspor terbatas pada skrip yang menjalankan ekspor di konsol utama Anda - jadi sejauh pekerjaan cron saya akan menambahkannya seperti konsol seperti di bawah ini ... untuk bagian perintah masih dipertanyakan: di sini adalah bagaimana Anda akan dijalankan dari shell Anda:
Pada prompt perintah Anda (selama export.bash memiliki beberapa nilai gema)
IFS=$'\n'; for entries in $(./export.bash); do export $entries; done; ./v1.sh
HELLO THERE
HI THERE
kucing v1.sh
#!/bin/bash
echo $VAR
echo $VAR1
Sekarang selama ini untuk penggunaan Anda - Anda bisa membuat variabel tersedia untuk skrip Anda kapan saja dengan melakukan alias bash seperti ini:
myvars ./v1.sh
HELLO THERE
HI THERE
echo $VAR
.
tambahkan ini ke .bashrc Anda
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
}
sumber file bashrc Anda dan Anda dapat melakukannya seperti di atas kapan saja ...
Bagaimanapun kembali ke sisanya ..
Ini telah membuatnya tersedia secara global kemudian menjalankan skrip ..
cukup gema lalu jalankan ekspor pada gema!
ekspor kucing
#!/bin/bash
echo "VAR=HELLO THERE"
Sekarang dalam skrip atau menjalankan konsol Anda:
export "$(./export.bash)"
Mencoba:
echo $VAR
HELLO THERE
Banyak nilai selama Anda tahu apa yang Anda harapkan dalam skrip lain menggunakan metode di atas:
ekspor kucing
#!/bin/bash
echo "VAR=HELLO THERE"
echo "VAR1=HI THERE"
cat test-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
Sekarang hasilnya
./test-export.sh
round 1
HELLO THERE
HI THERE
round 2
.
dan pembaruan akhir akhir untuk penetapan otomatis membaca VARIABEL:
./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
Script: 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