간단한 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

또는 한 번에 하나의 요소를 출력합니다.

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

또는 다음을 통해 특정 요소에 액세스합니다.

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

"라고 검색하시면 이미 많은 정보가 나와있습니다.배쉬 배열"

답변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"
    

관련 정보