Я запускаю цикл для каждой строки в файле.
if [ -e "/tmp/history" ]; then
while read line; do
connect.sh $line \
&& break
done </tmp/history
fi
Файл имеет следующий формат:
user\ name user\ password
Так что каждая строка будет содержать $1
и $2
для 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