在读取行时是否保留转义空格?

在读取行时是否保留转义空格?

我在文件中的每一行运行一个循环。

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

类似的问题

相关内容