forループ内で変数をエクスポートしようとしていますが、ループを繰り返すたびに作成される変数が変更されることを望みます。私はbashにエクスポートを満たすための正しい構文を探していましたが、私が試したことは成功しませんでした。これを行う正しい方法は何ですか?
詳細を追加するには、ループの実行時に最初の実行ではFVAR0、2番目の実行ではFVAR1、3番目の実行ではFVAR2などをエクスポートしたいと思います。
もともと努力したexport FVAR$i
export "${!FVAR[$i]}"
これが私の最近の推測である。
#!/bin/bash
set -x
for i in 0 1 2 3 4
do
export "${!FVAR[$i]}"=$(ls ./run/$i)
done
10:36:10 Thu Jan 24 :: ./uploader.sh
+ for i in 0 1 2 3 4
++ ls ./run/0
+ export =
./uploader.sh: line 5: export: `=': not a valid identifier
+ for i in 0 1 2 3 4
++ ls ./run/1
+ export =
./uploader.sh: line 5: export: `=': not a valid identifier
+ for i in 0 1 2 3 4
++ ls ./run/2
+ export =
./uploader.sh: line 5: export: `=': not a valid identifier
+ for i in 0 1 2 3 4
++ ls ./run/3
+ export =
./uploader.sh: line 5: export: `=': not a valid identifier
+ for i in 0 1 2 3 4
++ ls ./run/4
+ export =
./uploader.sh: line 5: export: `=': not a valid identifier
ベストアンサー1
これは働きます:
#!/bin/bash
for x in 0 1 2 3; do
export FVAR$x="Is's $x"
done
env | grep FVAR
実装する:
$ ./fvar.sh
FVAR3=Is's 3
FVAR2=Is's 2
FVAR1=Is's 1
FVAR0=Is's 0