使用bash
我试图创建一个带有变量列表的echo
命令。变量的数量可能因我想要执行的操作而异,但当我在 $ctr1
中计数时,我知道我有多少个变量。其外观示例如下:
echo "$var1,$var2,$var3"
等等。最后一个变量与计数器的数字相同。
有人能给我一个关于我应该做什么的想法吗,一个例子就很好了。我知道可以使用 if
语句来完成,其中一行表示计数器中可能的数字,但这并不实用,因为一行中可能有 1 到 50 多个变量。我不知道这是否应该是一个数组或类似的东西,也不知道如何将它们放在一起。对此的任何帮助都会有所帮助。
最佳答案
是的,这应该是 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
关于arrays - 从多个变量创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23422630/