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