【发布时间】:2012-03-04 17:50:06
【问题描述】:
我是 Bourne shell 的新手,想做简单的数组模拟。这有效:
COLORS='FF0000 0000FF 00FF00'
i=2
color=$(echo ${COLORS} | awk '{print $2}')
echo "color selected: $color"
我想要做的是在 print 中传递$i 而不是固定的$2 参数(稍后将在循环中使用)。我花了几个小时找出单引号和双引号的正确组合来做到这一点,但没有运气。
我得到的最接近的是
color=$("echo ${COLORS} | awk '{print "$"${i}}'")
运行结果为:
+ COLORS=FF0000 0000FF 00FF00
+ i=2
+ echo FF0000 0000FF 00FF00 | awk '{print $2}'
./tempgraph.sh: ./tempgraph.sh: 37: echo FF0000 0000FF 00FF00 | awk '{print $2}': not found
+ color=
+ echo color selected:
color selected:
感谢任何帮助。
【问题讨论】: