동일한 파일(예: CONV.inp)에 세 개의 값을 차례로 포함하는 문자열 세트를 추가하는 방법을 묻고 싶습니다.
다음과 같이 각각의 값을 사용하여 N개의 행을 입력하고 싶습니다.
...
5.834,-54.05,0
7.728,-10.35,0
7.796,-14.85,0
7.871,-4.85,0
9.397,7.09,0
...
마지막 0은 절대 변하지 않습니다. 한 줄에 두 개의 값을 입력할 수 있으며 작업이 완료되었을 때만 임의의 문자를 입력하여 bash에서 루프를 종료합니다.
...
echo -en '\n'
echo "1"
echo -en '\n'
read A
read B
echo "$A,$B,0" >> CONV.inp
echo -en '\n'
echo "2"
echo -en '\n'
read C
read D
echo "$C,$D,0" >> CONV.inp
echo -en '\n'
echo "3"
echo -en '\n'
read E
read F
echo "$E,$F,0" >> CONV.inp
...
이 함수를 사용하여 루프를 구현하는 방법을 아는 사람이 있습니까?
미리 감사드립니다!
답변1
실제로 원하는 것은 스크립트에서 do-while 스타일 루프를 사용하고 이를 사용하여 read variable1 variable2
동시에 두 값을 읽는 것입니다.
#!/bin/bash
# get rid of output_file.txt if it exists, write new file
# This is optional
[ -f output_file.txt ] && rm output_file.txt
# Read input once, then go into loop and start testing
# User's input
counter=0
read -p "Enter line #$counter or q to quit:" v1 v2
while [ "$v1" != "q" ]
do
printf "%s,%s,0\n" "$v1" "$v2" >> output_file.txt
counter=$(( $counter+1))
read -p "Enter line vs #$counter or q to quit:" v1 v2
done
테스트 실행:
$ ./read_double_input.sh
Enter line #0 or q to quit:5.834 -54.05
Enter line vs #1 or q to quit:7.728 -10.53
Enter line vs #2 or q to quit:7.96 -14.85
Enter line vs #3 or q to quit:q
$ cat output_file.txt
5.834,-54.05,0
7.728,-10.53,0
7.96,-14.85,0