次のファイルにこのコンテンツが含まれていますfoo.env
。
foo=bar
その後、そのファイルを読み、次の行をシェルにエクスポートしたいと思います。
for line in $(cat ./foo.env); do
eval export $line
done
しかし、私が走るとき
echo $foo
変数が空です。私が何を間違っているのでしょうか?
答え1
変更されていないコード
for line in $(cat ./foo.env); do
eval export $line
done
echo $foo
ファイルに入れてshまたはbashを使用して実行すると、正確に目的のタスクが実行されます。たぶんecho $foo
別のシェルで実行していますか?
ただし、POSIXシェルはこの場合に特別に組み込み関数を定義します。
. ./foo.env
echo $foo