VAR 변수를 먼저 내보내려면 가장 논리적이며 작동하는 방법은 변수를 소싱하는 것입니다.
. ./export.bash
또는
source ./export.bash
이제 메인 쉘에서 에코 할 때 작동합니다
echo $VAR
HELLO, VARABLE
이제 VAR을 재설정하겠습니다
export VAR=""
echo $VAR
이제 스크립트를 실행하여 변수를 소싱 한 다음 설정을 해제합니다.
./test-export.sh
HELLO, VARABLE
--
.
코드 : 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
여기에 한 가지 방법이 있습니다
참고 사항 : 내보내기는 기본 콘솔에서 내보내기를 실행하는 스크립트로 제한됩니다 .cron 작업에 이르기까지 아래처럼 콘솔과 같이 콘솔을 추가합니다 ... 명령 부분에 여전히 의문의 여지가 있습니다. 여기에 방법이 있습니다. 쉘에서 실행하십시오.
export.bash에 여러 개의 에코 값이있는 경우 명령 프롬프트에서
IFS=$'\n'; for entries in $(./export.bash); do export $entries; done; ./v1.sh
HELLO THERE
HI THERE
고양이 v1.sh
#!/bin/bash
echo $VAR
echo $VAR1
이제 이것이 당신의 용도라면-다음과 같이 bash 별칭을 사용하여 언제든지 스크립트에 변수를 사용할 수 있습니다.
myvars ./v1.sh
HELLO THERE
HI THERE
echo $VAR
.
이것을 .bashrc에 추가하십시오.
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
}
bashrc 파일을 소스하면 언제든지 위와 같이 할 수 있습니다 ...
어쨌든 나머지 부분으로 돌아가서
이를 통해 전 세계에서 사용할 수있게되었고 스크립트가 실행되었습니다.
단순히 에코 한 다음 에코에서 내보내기를 실행하십시오!
고양이 export.bash
#!/bin/bash
echo "VAR=HELLO THERE"
이제 스크립트 또는 콘솔에서 다음을 실행하십시오.
export "$(./export.bash)"
시험:
echo $VAR
HELLO THERE
위의 방법을 사용하여 다른 스크립트에서 예상되는 것을 알고있는 한 여러 값 :
고양이 export.bash
#!/bin/bash
echo "VAR=HELLO THERE"
echo "VAR1=HI THERE"
고양이 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
이제 결과
./test-export.sh
round 1
HELLO THERE
HI THERE
round 2
.
자동 할당에 대한 최종 최종 업데이트는 변수를 읽습니다.
./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
스크립트 : 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