[解決済み] シェルスクリプトは、呼び出し元のシェルの環境変数を設定できますか?重複
2022-03-20 17:14:52
質問
シェルスクリプトを書き、それを実行すると、呼び出し側のシェルで設定されたままの環境変数が設定されるようにしようとしています。
setenv FOO foo
はcsh/tcshで、または
export FOO=foo
を sh/bash で使用する場合は、スクリプトの実行時にのみ設定します。
すでに知っているのは
source myscript
は新しいシェルを起動するのではなく、スクリプトのコマンドを実行するので、結果として "呼び出し元の" 環境が設定されることがあります。
しかし、ここで困ったことになる。
このスクリプトは、bashまたはcshのどちらからでも呼び出せるようにしたいのです。 言い換えれば、どちらのシェルのユーザーでも、このスクリプトを実行して、そのシェルの環境を変更できるようにしたいのです。 csh を実行しているユーザが bash スクリプトをソースすることはできないし、bash を実行しているユーザが csh スクリプトをソースすることはできないからだ。
スクリプトに2つのバージョンを書いて管理する必要がない、合理的な解決策はないでしょうか?
解決方法は?
シェルプロセスは親プロセスの環境のコピーを持っており、親プロセスの環境には一切アクセスできません。シェルプロセスが終了すると、その環境に加えたすべての変更が失われます。スクリプトファイルのソースは、シェル環境を設定するための最も一般的な方法ですが、あなたはただ弾丸を噛んで、シェルの2つのフレーバーのそれぞれを維持したいかもしれません。
関連
-
[解決済み] Curl:応答を待たない[重複]。
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] あるディレクトリにあるすべてのコード行を再帰的にカウントするにはどうすればよいですか?
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
-
[解決済み] シェルスクリプトでブール変数を宣言して使用するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Bashのシンタックスエラー:予期しないファイルの終わり
-
[解決済み] 部分的にコピーされたファイルでscpを再開する方法は?[クローズド]です。
-
[解決済み] Bashでの動的な変数名
-
[解決済み] zip警告 - 名前が一致しない
-
[解決済み] bash スクリプトを実行しているドッカーエントリーポイントが "パーミッション拒否" になる
-
[解決済み] docker alpine /bin/sh script.sh not found
-
[解決済み] シンプルなAsciiテーブルをCSVに変換する【終了】。
-
[解決済み] condaのアップデート後、ターミナルのプロンプトから(base)を削除する方法
-
[解決済み] ファイル内の大文字・小文字を区別しない文字列を grep するには?
-
[解決済み] Bashスクリプトからソースなしで環境に変数をエクスポートすることはできますか?