0

我尝试将出色的示例docker-haproxy从 centos 转移到 alpine。

shell 脚本用于将作为脚本参数提供的值列表处理为数组,然后将这些值及其索引写入某个文件。

以下构造在 bash 中工作:

ServerArray=${SERVERS:=$1}
...
for i in ${ServerArray[@]}
do
  echo "   " server SERVER_$COUNT $i >> /haproxy/haproxy.cfg
  let "COUNT += 1"
done

但不在灰(或 sh)中:

syntax error: bad substitution

错误指的是行

for i in ${ServerArray[@]}

这里的正确语法是什么?我猜这条线

ServerArray=${SERVERS:=$1}

没有按预期定义数组,但长时间谷歌搜索对我没有帮助。

bash to sh (ash) 欺骗

sh 显然没有数组。

如果是这样,那么如何解决问题呢?

4

1 回答 1

0

我想我可以用这个结构做:

#!/bin/sh
# test.sh
while [ $# -gt 0 ]
do
  echo $1
  shift
done

交付

/ #  ./test 172.17.0.2:3306 172.17.0.3:3306
172.17.0.2:3306
172.17.0.3:3306

这是我需要继续

于 2016-03-28T18:27:51.157 回答