어떻게 달릴 수 있어?for 루프아니면 two variables
다시 말해서 이것이 허용됩니까? 다음 예를 통해 내 질문을 명확히하겠습니다.
텍스트 파일 "names.txt"에 문자 목록이 있고 텍스트 파일 "numbers.txt"에 숫자 목록이 있습니다. "numbers.txt"의 각 숫자는 "names.txt"의 문자(한 줄씩)와 같습니다. " names.txt에 이름 + Numbers.txt에 숫자가 포함된 폴더를 만들고 싶습니다.
names.txt numbers.txt output_folder name
A 1 A1
B 2 B2
C 3 C3
D 4 D4
E 5 E5
이름에는 생성할 폴더의 이름이 포함됩니다. 텍스트의 경우 다음 코드를 사용할 수 있습니다.
#!/bin/bash
in=/in/on/an
out=/ss/tt/nn
for i in $(cat $in/names.txt); do
mkdir ${in}/${i}
done
for 루프에 두 번째 변수를 추가하는 방법, 즉 이전 코드에서 변수 i는 name.txt에 속합니다. number.txt에 속하는 변수 b를 추가하는 방법은 무엇입니까?
답변1
이것이 실제로 필요한 것이라면 할 수 있습니다
mkdir $(paste letters.txt numbers.txt | tr -d '\t')
그러면 디렉터리가 생성됩니다. Bash의 일반적인 경우에는 일반적으로 비슷한 방식으로 수행됩니다.
paste letters.txt numbers.txt | while read let num; do
mkdir "${let}${num}"
done
특정 질문에 답하기 위해 bash에서는 여러 변수를 사용하여 루프를 실행할 수 없지만 for
보시다시피 일반적으로 몇 가지 해결 방법이 있습니다. 가장 가까운 것은 배열을 사용하는 것입니다. 예를 들어:
let=( $(cat letters.txt) )
num=( $(cat numbers.txt) )
for((i=0;i<${#let[@]};i++)); do
mkdir "${let[$i]}${num[$i]}"
done