Để xuất ra biến VAR đầu tiên hợp lý nhất và dường như làm việc cách là nguồn biến:
. ./export.bash
hoặc
source ./export.bash
Bây giờ khi lặp lại từ vỏ chính nó hoạt động
echo $VAR
HELLO, VARABLE
Bây giờ chúng tôi sẽ đặt lại VAR
export VAR=""
echo $VAR
Bây giờ chúng ta sẽ thực hiện một kịch bản nguồn biến sau đó unset nó:
./test-export.sh
HELLO, VARABLE
--
.
mã: mèo 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
Dưới đây là một cách
XIN LƯU Ý: Xuất khẩu được giới hạn trong tập lệnh thực thi xuất trong giao diện điều khiển chính của bạn - cho đến khi một công việc cron tôi sẽ thêm nó giống như giao diện điều khiển như dưới đây ... cho phần lệnh vẫn đáng ngờ: đây là cách bạn sẽ chạy từ vỏ của bạn:
Mở dấu nhắc lệnh của bạn (miễn là export.bash có nhiều giá trị vang)
IFS=$'\n'; for entries in $(./export.bash); do export $entries; done; ./v1.sh
HELLO THERE
HI THERE
mèo v1.sh
#!/bin/bash
echo $VAR
echo $VAR1
Bây giờ chừng này là dành cho việc sử dụng của bạn - bạn có thể làm cho các biến có sẵn cho các kịch bản của bạn bất cứ lúc nào bằng cách thực hiện một bí danh bash như thế này:
myvars ./v1.sh
HELLO THERE
HI THERE
echo $VAR
.
thêm video này vào .bashrc của bạn
function myvars() {
IFS=$'\n';
for entries in $(./export.bash); do export $entries; done;
"[email protected]";
for entries in $(./export.bash); do variable=$(echo $entries|awk -F"=" '{print $1}'); unset $variable;
done
}
nguồn tập tin .bashrc của bạn và bạn có thể làm như trên bất cứ lúc nào ...
Nhưng dù sao trở lại với phần còn lại của nó ..
này có làm cho nó có sẵn trên toàn cầu sau đó thực thi kịch bản ..
chỉ đơn giản là echo nó ra sau đó chạy xuất khẩu trên echo!
mèo export.bash
#!/bin/bash
echo "VAR=HELLO THERE"
Bây giờ trong kịch bản hoặc giao diện điều khiển của bạn chạy:
export "$(./export.bash)"
Hãy thử:
echo $VAR
HELLO THERE
Nhiều giá trị, miễn là bạn biết những gì bạn đang mong đợi trong tập lệnh khác bằng cách sử dụng phương thức trên:
mèo export.bash
#!/bin/bash
echo "VAR=HELLO THERE"
echo "VAR1=HI THERE"
mèo 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
Bây giờ kết quả
./test-export.sh
round 1
HELLO THERE
HI THERE
round 2
.
và bản cập nhật chính thức cuối cùng để auto assign đọc BIẾN:
./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
Kịch bản: mèo 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
Bạn có thể thử sử dụng bí danh thay vì tập lệnh để xác định biến của bạn. – jdigital
Kịch bản mà tôi đang làm việc, là một loại trình quản lý ảo java, tôi thực hiện một số tính toán sau đó tôi nên xuất một $ JAVA_HOME vào thư mục env và thêm nó vào PATH. – tarrsalah
Vâng, bạn có thể viết thông tin vào một tập tin và sau đó đọc nó trở lại, nhưng tìm nguồn cung ứng dường như dễ dàng hơn nhiều. – jdigital