私は大量の引数を取る bash スクリプトを書いています。次のようになります。
bash script.sh 713884440 1041 691539599 Digiweb 371449356 Dublin ...
引数の数が多く、状況によって引数の数が異なるため、すべての引数を取得して次の形式にする文字列を作成したいと考えました。
element.713884440="1041" -d element.691539599="Digiweb" -d element.371449356="Dublin"...
最初に、これを行うために for ループを作成しようとしました。${$i}
ループの最初の反復では、最初に に評価され$1
、次に に評価されると思いました713884440
for i in $(seq 1 2 $#)
do
ENT=$i
VAL=$i+1
ENTRYSTRING="$ENTRYSTRING -d element.${$i}=\"${${i+1}}\"";
done;
これはうまくいきませんでした。echo
そして、「内部」変数をandで解決しようとしましたeval
が、それらも機能しませんでした。どうすればこれを達成できますか?