줄을 읽는 동안 이스케이프된 공백을 유지합니까?

줄을 읽는 동안 이스케이프된 공백을 유지합니까?

파일의 각 줄에서 루프를 실행하고 있습니다.

if [ -e "/tmp/history" ]; then
  while read line; do
    connect.sh $line \
      && break
  done </tmp/history
fi

파일 형식은 다음과 같습니다.

user\ name user\ password

$1각 줄에는 및 $2for가 포함됩니다 connect.sh.

그러나 내 while 루프에서는 로 전달 되기 $line전에 줄 바꿈을 잃어서 .connect.shuser\ nameuser name

줄 바꿈을 유지하기 위해 while 루프를 수정할 수 있는 방법이 있습니까?

답변1

-r플래그를 추가하고 변수를 큰따옴표로 묶어서 문제를 해결할 수 있었습니다 .

if [ -e "/tmp/history" ]; then
  while read -r line; do
    connect.sh "$line" \
      && break
  done <"/tmp/history"
fi

비슷한 질문.

관련 정보