![如何将数字范围分配到简单的 bash 变量中](https://linux22.com/image/190042/%E5%A6%82%E4%BD%95%E5%B0%86%E6%95%B0%E5%AD%97%E8%8C%83%E5%9B%B4%E5%88%86%E9%85%8D%E5%88%B0%E7%AE%80%E5%8D%95%E7%9A%84%20bash%20%E5%8F%98%E9%87%8F%E4%B8%AD.png)
当失败时如何将数字序列分配到 bash 变量中:
$ n={0..9}; echo $n
{0..9}
$ n=\"{0..9}\"; echo $n
"{0..9}"
$ eval n={0..9}; echo $n
$ eval n=\"{0..9}\"; echo $n
9
$ n=`eval {0..9}`; echo $n
bash: 0: command not found
请指导正确的一个
答案1
分配:
$ n=({0..9})
使用n=(x)
meansn
是一个数组,x
其内容为数组。
然后输出一个完整的数组:
$ echo "${n[@]}"
0 1 2 3 4 5 6 7 8 9
或一次输出一个元素
$ for i in "${n[@]}"; do
> printf "%s " "$i"
> done
0 1 2 3 4 5 6 7 8 9
或通过以下方式访问特定元素:
$ echo "${n[0]}"
0
如果您搜索“,已经有很多信息可用”bash数组”
答案2
这里有两种方法:
使用数组
$ n=( {0..9} ) $ declare -p n declare -a n=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="5" [6]="6" [7]="7" [8]="8" [9]="9")
将范围扩展为单个字符串
$ n=$(printf "%s" {0..9}) $ declare -p n declare -- n="0123456789"