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) )
다섯
...
- 사용할 필요 없이 모든 파일을
ls
배치하기만 하면 됩니다.*
[]
로고는$
생략 가능