- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:bashでの変数の引渡し方法)
bashでの変数の引渡し方法
このQ&Aのポイント
- bashを使用するのが初めてなので教えてください。
- shellscriptの中で変数を設定するのに共通変数設定用の子Shellを実行して変数を設定したいと思っていますが、うまく動きません。
- 親shellで子Shellを実行し変数を設定する方法を教えてください。cshのときはsetenvでよかったのですが。。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ご希望のような事を行いたい場合、変数を設定するスクリプト(質問での子シェルsetenv.sh)を「. filename」のような感じでシェルスクリプト(質問での親シェルhoge.sh)で指定します。 ちなみに「. filename」と指定すると、filenameで指定されたファイルから1行ずつ読み出し実行してくれます。 質問にあるシェルスクリプトを修正すると下記のような感じになります。 ○hoge.sh -------------- #!/bin/sh . ./setenv.sh #変数設定用子Shell echo $USER exit 0 -------------- ○setenv.sh -------------- #!/bin/sh USER="hoge" -------------- %./hoge.sh hoge
その他の回答 (1)
- galoon
- ベストアンサー率28% (38/133)
回答No.1
子シェルから親シェルへ環境変数の引き渡しはできなかったと記憶していますが可能性があるとすれば、子シェルの部分を USER="hoge" export USER exit 0 とするぐらいでしょうか。
質問者
補足
galoonさん、 回答ありがとうございます。 exportを使用しても結果は一緒でした。 >子シェルから親シェルへ環境変数の引き渡しはできなかったと記憶していま もしそうなら他の代替案はあるのでしょうか?皆さんはどうしているのでしょうか?
お礼
できました!!ありがとうございます。 子Shellの中ではexitもいらないんですね。 勉強になりました。