0

我正在编写一个 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;

这没有用。而且我尝试过通过echoand解析“内部”变量eval,但这些也不起作用。我将如何做到这一点?

4

1 回答 1

1
S=""
while [ $# -ge 2 ]
do
  S="$S -d element.$1=\"$2\""
  shift 2
done
echo $S
于 2018-02-06T15:45:46.943 回答