bash 변수를 만들고 루프를 통해 값을 할당하는 방법이 있습니까?
다음과 같은 내용이 있습니다.
#!/bin/bash
c=0
for file in $( ls ); do
var"$c"="$file";
let c=$c+1;
done
편집 : @Costas 및 @mdpc에게 목록에 대한 나쁜 대안이 될 것이라고 지적 해 주셔서 감사합니다. 문제는 이론적 인 것입니다.
1
참고 : 설정으로 현재 프로세스에서만 변수를 변경 / 수정 / 할당 할 수 있으며 명령으로 실행할 경우 상위 프로세스가 아님을 유의하십시오. '.'를 사용하여 파일을 소싱 할 수 있습니다. 명령 (EX :. new_vars)을 사용하여 현재 프로세스 내에서이를 수행하십시오.
—
mdpc
그러나 위의 내용은 실제로 작동하지 않습니다.
—
toxefa
var"$c"
그것을 끊는다. @Costas의 답변은 단일 목록 변수에 여러 값을 할당하는 방법을 보여줍니다-변수를 실제로 루프 로 생성 할 수 있는지 이론적으로 묻습니다 .
흠 ... 왜 그렇게 복잡한 지, 새로운 변수를 사용하면 아무런 어려움없이 변수를 만듭니다.
—
mdpc