for a in {P02183606,P02183608,sassa}
do
for b in {PID,PID2,sas}
do
echo "http://indiafirstlife.com//onlineInsurance-rest/uploadDocument/uploadDocumentsOmniMannualPush?applicationRefNo=$a&applicationFormId=$b"
done
done
期待される出力
http://indiafirstlife.com//onlineInsurance-rest/uploadDocument/uploadDocumentsOmniMannualPush?applicationRefNo=P02183606&applicationFormId=PID
http://indiafirstlife.com//onlineInsurance-rest/uploadDocument/uploadDocumentsOmniMannualPush?applicationRefNo=P02183608&applicationFormId=PID2
http://indiafirstlife.com//onlineInsurance-rest/uploadDocument/uploadDocumentsOmniMannualPush?applicationRefNo=sassa&applicationFormId=sas
答え1
欲しいペア可能なすべての組み合わせに結合する代わりに、2つのリストがあります。
1つの方法は次のとおりです。
#!/bin/sh
set -- P02183606 P02183608 sassa
for formid in PID PID2 sas; do
printf '...urlpath...?applicationRefNo=%s&applicationFormId=%s\n' "$1" "$formid"
shift
done
これにより、位置パラメータが参照番号のリストに設定され、フォームIDが繰り返されます。各反復でURLが印刷され、これらのパラメータはを使用して挿入され、printf
最初shift
の位置パラメータはループの末尾からリストから削除されます。
中かっこ拡張は単に単純なリストを表現するためのものではありません。
答え2
配列を使用して下さい:
a=(P02183606 P02183608 sassa)
b=(PID PID2 sas)
for i in "${!a[@]}"; do
printf 'http://...?applicationRefNo=%s&applicationFormId=%s\n' "${a[$i]}" "${b[$i]}"
done
代替、単純さprintf
:
arr=(P02183606 PID P02183608 PID2 sassa sas)
printf 'http://...?applicationRefNo=%s&applicationFormId=%s\n' "${arr[@]}"
配列でもありません:
printf 'http://...?applicationRefNo=%s&applicationFormId=%s\n' P02183606 PID P02183608 PID2 sassa sas