[解決済み] キーと値のペアのファイルから環境変数を設定する
2022-03-20 21:02:30
質問
TL;DR。 テキストファイルからシェル環境にキーと値のペアのセットをエクスポートするにはどうすればよいですか?
ちなみに、以下は質問のオリジナル版で、例もあります。
bashで、あるフォルダにある3つの変数を持つファイルを解析するスクリプトを書いているのですが、これはそのうちの1つです。
MINIENTREGA_FECHALIMITE="2011-03-31"
MINIENTREGA_FICHEROS="informe.txt programa.c"
MINIENTREGA_DESTINO="./destino/entrega-prac1"
このファイルは
./conf/prac1
私のスクリプト
minientrega.sh
で、このコードでファイルをパースします。
cat ./conf/$1 | while read line; do
export $line
done
しかし、私が実行すると
minientrega.sh prac1
コマンドラインでは環境変数が設定されません。
また
source ./conf/$1
しかし、同じ問題がまだ適用されます
多分、他の方法があるのでしょう。私は、スクリプトの引数として渡すファイルの環境変数を使用する必要があります。
どのように解決するのですか?
あなたのアプローチの問題点は
export
の中に
while
のループはサブシェルで起こっており、これらの変数は現在のシェル(whileループの親シェル)では利用できません。
追加
export
コマンドをファイル自体に記述します。
export MINIENTREGA_FECHALIMITE="2011-03-31"
export MINIENTREGA_FICHEROS="informe.txt programa.c"
export MINIENTREGA_DESTINO="./destino/entrega-prac1"
そして、現在のシェルで、そのファイルをソースとして使用する必要があります。
. ./conf/prac1
または
source ./conf/prac1
関連
-
[解決済み】シェルスクリプトで整数式が期待されるエラーが発生する
-
[解決済み] rsyncです。--include-from vs. --exclude-from 実際の違いは何ですか?
-
[解決済み] Bashスクリプトのset -o pipefailの意味を教えてください。
-
[解決済み] Bashでファイルの中身をループする
-
[解決済み] Node.jsで環境変数を読み込む
-
[解決済み] コマンドラインからすべての環境変数をリストアップ
-
[解決済み] Bashコマンドからテキストファイルの内部を検索・置換する
-
[解決済み] Mac OS X Lionで環境変数を設定する
-
[解決済み] Unixのシェルスクリプトで環境変数が設定されていることを確認する簡潔な方法は何ですか?
-
[解決済み】bashで1つのコマンドでシェル変数にデフォルト値を割り当てる。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ログアウトと再ログインをせずに.bashrcの設定を再読み込みする方法?
-
[解決済み] Bashで$()と`の違いはあるのでしょうか?重複] [重複
-
[解決済み] rsyncです。--include-from vs. --exclude-from 実際の違いは何ですか?
-
[解決済み] ssh / リモートbashコマンドでシングルクォート文字をエスケープするにはどうすればよいですか?
-
[解決済み] bashでjsonファイルを解析するためにjqの出力からダブルクオートを削除する方法は?
-
[解決済み] Bashを使ってプログレスインジケータを表示する [重複]。
-
[解決済み] bashで::演算子は何をするのですか?
-
解決策:bash: /root/.bashrc: パーミッションが拒否されました
-
[解決済み] findコマンドと一緒に使用するとエラー 'rm: missing operand' が発生する。
-
[解決済み] エラー「Missing `secret_key_base` for 'production' environment」を解決する方法 (Rails 4.1)