从许多变量创建数组

时间:2014-05-02 07:05:20

标签: arrays bash

使用bash我正在尝试使用变量列表创建echo命令。变量的数量可能因我想要做的而有所不同,但我知道我在$ctr1计算了多少变量。它应该是什么样子的一个例子是:

echo "$var1,$var2,$var3"

等。最后一个变量与计数器的编号相同。

有人可以给我一个关于我应该做什么的想法,一个例子会很棒。我知道可以使用if语句来完成计数器中可能的数字行但这是不切实际的,因为一行中可以有1到50个变量。我不知道这应该是一个数组或类似的,也不知道如何把它放在一起。对此的任何帮助都是有帮助的。

1 个答案:

答案 0 :(得分:2)

是的,这应该是array而已。

而不是做例如。

var1=foo
var2=bar
var3=quux
ctr1=3
echo "${var1},${var2},${var3}"

你可以做到

var=("foo" "bar" "quux")
( IFS=,; echo "${var[*]}" )

示例:

$ cat test.sh
#!/bin/bash

# the following is equivalent to doing
#  ( IFS=,; echo "$*" )
# but that wouldn't be a good example, would it?

for argument in "$@"; do
    var+=( "${argument}" )
done
( IFS=,; echo "${var[*]}" )

$ ./test.sh foo
foo

$ ./test.sh foo bar
foo,bar

$ ./test.sh foo bar "qu ux"
foo,bar,qu ux