쉘 스크립트는 도움말 텍스트 파일을 배열에 기록합니다.

쉘 스크립트는 도움말 텍스트 파일을 배열에 기록합니다.
#!/bin/bash
function guest {
i=0
while IFS = $'\n' read -r name; do
GUESTS[i]="${name}"
((i++))
done<filename.txt
}
function print{
i=0
while ((${GUESTS[@]} > $i)) do
echo "${GUESTS[i++]}\n" 
done
}

위에서 제공한 코드에서 두 가지 기능을 사용하여 두 가지를 시도합니다. 첫 번째 기능은 임의의 사람 이름 목록(예: Bob\n, Jennifer\n, Caleb\n 등)이 포함된 텍스트 파일을 가져와서 넣는 것입니다. GUESTS 배열로 변환합니다. 코드는 방문자 배열에 있어야 합니다. 그런 다음 두 번째 함수는 각 이름이 한 줄에 포함된 GUESTS 배열을 인쇄해야 합니다.

답변1

내장된 bash를 사용하여 이 작업을 수행할 수 있습니다 mapfile.

$ cat /tmp/file.txt 
Bob
Jennifer
Caleb
$ mapfile -t guests < /tmp/file.txt
$ printf '%s\n' "${guests[@]}"
Bob
Jennifer
Caleb

답변2

첫 번째 기능의 경우 Bash는 이미 이를 쉽게 만들어줍니다. 이것이 당신이 해야 할 전부입니다:

readarray GUESTS < filename.txt

두 번째의 경우 다음과 같아야 합니다.

print () {
   for index in ${!GUESTS[@]}; do
   echo ${GUESTS[$index]}
   done
}

관련 정보