単純な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)方法は、コンテンツが配列であるn配列です。x

その後、完全な配列を出力します。

$ echo "${n[@]}"
0 1 2 3 4 5 6 7 8 9

または一度に1つの要素を出力します。

$ for i in "${n[@]}"; do
>   printf "%s " "$i"
> done
0 1 2 3 4 5 6 7 8 9

または、以下を介して特定の要素にアクセスします。

$ echo "${n[0]}"
0

「と検索すると既に多くの情報が出ています。バッシュ配列

答え2

これには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"
    

関連情報