bash - 数组键名中的冒号
问题描述:
我正试图在bash中编写一个脚本,用于为同一应用程序的多个实例执行相同的操作 - 在不同的端口上运行。我目前的做法是使用这样一个数组:bash - 数组键名中的冒号
INSTANCES=('localhost:50010' 'localhost:50011' 'localhost:50012')
for INSTANCE in ${INSTANCES[@]}; do
A["$INSTANCE"]="$(do stuff with $INSTANCE)"
B["$INSTANCE"]="$(do more stuff with $INSTANCE)"
done
击似乎拒绝这个,因为在数组键名冒号:
bash: localhost:50010: syntax error in expression (error token is ":50010")
我想这是得到的东西做的Shell Parameter Expansion或类似的东西。有没有什么方法可以实现我在尝试而不操纵$INSTANCE
的内容?
在此先感谢!
答
冒号非常被接受为关联数组的数组键名。
你只需要首先声明你的关联数组:
declare -A A B
有时是最明显和最简单的东西,可以让你发疯。谢谢。 – David