루프(bash)를 통해 변수 생성 및 값 할당

루프(bash)를 통해 변수 생성 및 값 할당

bash 변수를 생성하고 루프를 통해 값을 할당하는 방법이 있습니까?

대략 다음과 같습니다.

#!/bin/bash

c=0
for file in $( ls ); do
    var"$c"="$file";
    let c=$c+1;
done

편집: 이것이 목록에 대한 좋지 않은 대안임을 지적한 @Costas 및 @mdpc에게 감사드립니다. 질문은 단지 이론적일 뿐입니다.

답변1

글쎄, 당신은 확실히 사용할 수 있습니다평가하다다음과 같이:

c=0
for file in $( ls ); do
    eval "var$c=$file";
    c=$((c+1));
done

이 코드는 각각 파일 이름을 포함하는 var0, var1, var2...라는 변수를 생성합니다. 배열을 사용하여 이 작업을 수행하려는 타당한 이유가 있다고 생각합니다.

답변2

어쩌면 배열을 의미할 수도 있습니다. 몇 가지 할당 방법이 있습니다.

첫 번째:

c=0
for file in $( ls ); do
    var[$c]="$file";
    c=$(($c+1));
done

두번째:

c=0
for file in $( ls ); do
    var[c++]="$file";
done

제삼:

for file in $( ls ); do
    var[${#var}]="$file";
done

네번째:

var=( $(ls) )

다섯

...

  1. 사용할 필요 없이 모든 파일을 ls배치하기만 하면 됩니다.*
  2. []로고는 $생략 가능

관련 정보