¿Mientras la línea lee manteniendo espacios escapados?

¿Mientras la línea lee manteniendo espacios escapados?

Estoy ejecutando un bucle en cada línea de un archivo.

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

El archivo tiene el formato siguiente:

user\ name user\ password

De modo que cada línea contendrá $1y $2para connect.sh.

Sin embargo, parece que con mi bucle while $linese pierden los saltos de línea antes de pasar a, connect.shpor lo que user\ namese convierte en user name.

¿Hay alguna manera de modificar mi bucle while para mantener los saltos de línea?

Respuesta1

Pude solucionar el problema agregando la -rbandera y citando dos veces la variable.

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

Pregunta SO similar.

información relacionada