[解決済み] Bashスクリプトからソースなしで環境に変数をエクスポートすることはできますか?
2022-03-24 06:14:40
質問
このようなスクリプトがあるとします。
エクスポート.bash :
#! /usr/bin/env bash
export VAR="HELLO, VARIABLE"
スクリプトを実行して
$VAR
というように、何の値も得られないのです!
echo $VAR
にアクセスする方法はありますか?
$VAR
を実行するだけで
エクスポート.bash
ソースをかけずに?
どのように解決するのですか?
<ブロッククオート
にアクセスする方法はありますか?
$VAR
を実行するだけで
export.bash
ソースなしで?
即答です。いいえ。
しかし、いくつかの回避策が考えられます。
一番わかりやすいのは、すでにおっしゃられているように
source
または
.
を使用すると、呼び出したシェルのコンテキストでスクリプトを実行することができます。
$ cat set-vars1.sh
export FOO=BAR
$ . set-vars1.sh
$ echo $FOO
BAR
もう一つの方法は、環境変数を設定するのではなく、スクリプトが環境変数を設定するコマンドを表示するようにすることです。
$ cat set-vars2.sh
#!/bin/bash
echo export FOO=BAR
$ eval "$(./set-vars2.sh)"
$ echo "$FOO"
BAR
第三の方法は、内部で環境変数を設定し、その環境下で指定されたコマンドを起動するスクリプトを用意することです。
$ cat set-vars3.sh
#!/bin/bash
export FOO=BAR
exec "$@"
$ ./set-vars3.sh printenv | grep FOO
FOO=BAR
この最後の方法は非常に便利ですが、現在のシェルの設定(他の設定や蓄積された履歴も含めて)を得ることができないため、対話的に使用するには不都合です。
関連
-
[解決済み] bash : cd : 引数が多すぎる [閉店].
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] Bashでファイルの中身をループする
-
[解決済み] エクスポートあり/なしの変数の定義
-
[解決済み] 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でjsonファイルを解析するために、jqの出力にあるダブルクオートを削除する方法は?
-
[解決済み】 -bash: 予期しないトークン「改行」付近での構文エラー
-
[解決済み] '\r': command not found - .bashrc / .bash_profile [duplicate].
-
[解決済み] bash : cd : 引数が多すぎる [閉店].
-
[解決済み] (standard_in) 1: bash スクリプトのシンタックスエラー
-
[解決済み] curl: 引数リストが長すぎる
-
[解決済み] 構文エラー:オペランドが期待される(エラーメッセージは "+")。
-
[解決済み] ConcatenationとAppendの違いについて【終了しました
-
[解決済み] Bashスクリプトの'''抜け'''がある] [クローズド]
-
[解決済み] シェルスクリプトは、呼び出し元のシェルの環境変数を設定できますか?重複