당신은 할 것입니다 :
unset -v line1 line2
{ IFS= read -r line1 && IFS= read -r line2; } < input.txt
또는:
{ line1=$(line) && line2=$(line); } < input.txt
( line대부분의 내장 기능은 별로 효율적이지 않으며 대부분의 쉘은 명령 대체를 구현하기 위해 분기해야합니다. line더 이상 표준 명령이 아닙니다).
루프를 사용하려면
unset -v line1 line2 line3
for var in line1 line2 line3; do
IFS= read -r "$var" || break
done < input.txt
또는 변수 이름을 다음과 같이 자동으로 정의합니다 line<++n>.
n=1; while IFS= read -r "line$n"; do
n=$((n + 1))
done < input.txt
bash배열 변수와 배열에 readarray행을 읽을 수 있는 내장 변수 를 지원합니다 .
readarray -t line < input.txt
참고 대부분의 다른 조개는 달리, 그러나 것을 bash배열 인덱스는 (상속 0이 아닌 1부터 시작 ksh첫 번째 줄에있을 것입니다, 그래서) ${line[0]},하지 ${line[1]}(비록 @Costas 표시된 것처럼 , 당신은 할 수 있습니다 readarray(일명 mapfile) indice의 값을 쓰기 시작 1 (와 bash배열은 대부분의 다른 쉘의 희소 배열 과 반대 입니다 -O 1)).
참조 : "=이 -r 라인을 읽을 IFS를"이해?