シェルスクリプトを介して親シェルから子シェルに変数を渡す

シェルスクリプトを介して親シェルから子シェルに変数を渡す

親シェル(ルート)で次のコマンドを実行します。

SESSION_RECORD=started

出力:

echo $SESSION_RECORD
started

ところで、シェルスクリプトで状態を確認してみると、値が割り当てられていません。私はそれが子を生成し、スクリプトを実行することを知っています。だから変数を許可しません。

これを親シェルから子シェルにインポートする方法はありますか?ルート変数が動的であるため、エクスポートを使用したくありません。

参照スクリプト:

#!/bin/bash

session=`echo $SESSION_RECORD`
echo $session
if [ "$session" == "started" ]
then
echo "screen records"
else
echo "screen not started"
fi

デフォルトでは、私のスクリプトは変数の値を確認し、一致する場合はループを入力してコマンドをさらに実行する必要があります。

変数の値はSESSION_RECORD動的に変更されるため、その値に基づいてスクリプトを実行する必要があります。

ベストアンサー1

エクスポート時に変数値を設定する必要はありません。あなたはできます:

SESSION_RECORD=started
echo "Now some other stuff"
export SESSION_RECORD && ./myscript

SESSION_RECORD現在の値をスクリプトにエクスポートします。

おすすめ記事