我无法在bash脚本中打印10x10之类的内容。我就是这样:
#!/bin/bash
i="2"
array=(1024 2048 4096 6144)
while [ $i -lt 17 ]
do
for j in "${array[@]}"
do
:
secondpart=$((j / i))
echo "$jx$jx$j and $secondpartx$secondpart"
done
echo "\n"
i=$[$i*2]
done
预期输出为: 1024x1024x1024和512x512
答案 0 :(得分:3)
使用${j}x
;否则它会查找名为$jx
答案 1 :(得分:0)
使用join
类型功能。更容易:
$ function join_array { local IFS="$1"; shift; echo "$*"; }
$ array=(1024 2048 4096 6144)
$ join_array x "${array[@]}"
1024x2048x4096x6144
然后分配给字符串:
$ s=$(join_array x "${array[@]}")
$ echo "$s"
1024x2048x4096x6144
或者,更直接地(没有该功能),你可以这样做:
$ st=$(IFS=x; echo "${array[*]}")
$ echo "$st"
1024x2048x4096x6144
如果主要用于分配字符串,请使用第二种方法。