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ファイルを調達し、あなたはいつでも上記のように行うことができます...
とにかく、残りの部分に戻ります。
これにより、グローバルに使用可能になり、スクリプトが実行されました。
単にそれをエコーし、エコーでエクスポートを実行します!
猫の輸出.bash
#!/bin/bash
echo "VAR=HELLO THERE"
スクリプトまたはコンソール実行内で:
export "$(./export.bash)"
試してください:
echo $VAR
HELLO THERE
上記の方法を使用して別のスクリプトで期待していることがわかっている限り、複数の値:
猫の輸出.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