例えば。別々にアーカイブして実行したい別々のスクリプトが2つあります。スクリプト 1 は読み取り機能を使用して必要なファイル名を要求します。 name1と言い、その操作を実行してからname1のファイルを出力します。
入力の一部としてname1を使用する2番目のスクリプトと、name1を指すスクリプトとは別の設定ファイルが必要です(ディレクトリは固定されていますが、ファイル名は可変であると仮定します)。 ]
これを行うには、グローバル変数をエクスポートする方法が必要だと思います。現在行う方法は次のとおりです。
read -p "What do you want this file to be called?: " name1
export name1=$name1
次のコマンドを実行します。
. script1.sh
それから
echo $name1
正しい結果を生成しますが、現在のシェルで使用を指定せずにこの動作をどのように複製できますか? - 次の人が./script1.shなどを実行すると仮定すると、グローバルにエクスポートする方法はありますか?これにより、構成ファイルとscript2で$ name1変数を使用できます。
よろしくお願いします。
答え1
あなたは本当にできません。スクリプトは親シェル環境で環境変数を設定できません。
明らかに1つの解決策は、実行する必要がある特定の方法で他の2つのスクリプトを実行する3番目のスクリプトを作成することです。最初のスクリプトをインポートし、2番目のスクリプトを実行します。
または、両方のスクリプトを1つにまとめます。 「個別のもの」に分割すると、必要に応じて同じスクリプトの関数で同じことを行うことができます。
返品、
export name1=$name1
に短縮することができる
export name1