當行讀取時維護轉義空格?

當行讀取時維護轉義空格?

我在文件中的每一行運行一個循環。

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.sh因此user\ name變成了user name

有沒有辦法修改 while 迴圈以保持換行符?

答案1

我能夠透過添加-r標誌和雙引號變數來解決問題。

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

類似的問題

相關內容