如何将数字范围分配到简单的 bash 变量中

如何将数字范围分配到简单的 bash 变量中

当失败时如何将数字序列分配到 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

这里有两种方法:

  1. 使用数组

    $ 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")
    
  2. 将范围扩展为单个字符串

    $ n=$(printf "%s" {0..9})
    $ declare -p n
    declare -- n="0123456789"
    

相关内容