bash에서는 for
일부 루프 제어 변수 i
가 지정된 정수를 반복 하는 루프 를 작성할 수 있음을 알고 있습니다. 예를 들어 1에서 10 사이의 정수를 출력하는 bash 쉘 스크립트를 작성할 수 있습니다.
#!/bin/bash
for i in {1..10}
do
echo $i
done
문자열 목록을 제공하면 대신 문자열 인 루프 제어 변수를 반복 할 수 있습니까? 예를 들어 fname
파일 이름을 나타내는 문자열 이 있다고 가정 하십시오. 각 파일 이름에 대해 일련의 명령을 호출하고 싶습니다. 예를 들어 다음 fname
과 같은 명령 을 사용하여 내용을 인쇄 할 수 있습니다 .
#!/bin/bash
for fname in {"a.txt", "b.txt", "c.txt"}
do
echo $fname
done
즉, 첫 번째 반복에서는 fname
값을 가져야 fname="a.txt"
하고 두 번째 반복에서는 fname
값 fname="b.txt"
등을 가져야합니다 . 불행히도 위의 구문이 정확하지 않은 것 같습니다. 출력을 얻고 싶습니다.
a.txt
b.txt
c.txt
그러나 위의 코드를 시도하면이 출력을 얻습니다.
{a.txt,
b.txt,
c.txt}
변수의 값 / 내용을 반복적으로 변경할 수 있도록 올바른 구문을 결정하도록 도와 줄 수 fname
있습니까? 시간 내 주셔서 감사합니다.
수단 @Mat 제거
—
manatwork
{}
하고,
들. 대안은 공백을 제거하는 것입니다. 그래서 "a.txt" "b.txt" "c.txt"
또는 {"a.txt","b.txt","c.txt"}
. 그러나 나는 {a..c}.txt
대신 선호 합니다.
{}
공백으로 구분 된 목록을 반복 할 필요가 없습니다.