Để xuất ra biến VAR trước tiên, cách làm việc hợp lý và hợp lý nhất là tìm nguồn cho biến:
. ./export.bash
hoặc là
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ẽ thiết lập lại VAR
export VAR=""
echo $VAR
Bây giờ chúng ta sẽ thực thi một tập lệnh để lấy nguồn sau đó bỏ đặt 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
Đây là một cách
XIN LƯU Ý: Việc xuất được giới hạn trong tập lệnh thực hiện xuất trong bảng điều khiển chính của bạn - theo như một công việc định kỳ, tôi sẽ thêm nó như bảng điều khiển như bên dưới ... đối với phần lệnh vẫn còn nghi vấn: đây là cách bạn sẽ làm chạy vào từ vỏ của bạn:
Trên dấu nhắc lệnh của bạn (miễn là export.bash có nhiều giá trị echo)
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ờ miễn là điều này là cho việc sử dụng của bạn - bạn có thể tạo các biến có sẵn cho tập lệnh của mình 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 phần này vào .bashrc của bạn
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
}
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 cũng trở lại với phần còn lại của nó ..
Điều này đã làm cho nó có sẵn trên toàn cầu sau đó thực thi tập lệnh ..
chỉ cần lặp lại nó sau đó chạy xuất khẩu trên echo!
mèo xuất khẩu
#!/bin/bash
echo "VAR=HELLO THERE"
Bây giờ trong tập lệnh hoặc bảng điều khiển của bạn chạy:
export "$(./export.bash)"
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 một tập lệnh khác bằng phương pháp trên:
mèo xuất khẩu
#!/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 cuối cùng để tự động gán đọc VARIABLES:
./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: 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