@Tarakanishe

Почему в переменной bash лишние символы?

Есть прострой скрипт для чтения csv и выполнения команд с подстановкой значений из csv, но при формировании почтового ящика, почему-то появляются лишние символы. Вот скрипт:
#! /bin/bash
while IFS="," read -r name mail
do
  echo "$mail"
done <  file.csv


Содержимое csv примерно такое:
Вася, somemail@123545.com

При выполнении скрипта с отладкой bash -x script.sh
Получается такой результат:
+ echo $'somemail@123545.com\r'
somemail@123545.com
+ IFS=,
+ read -r name mail

Соответственно если я через скрипт в разделе do выполняю какую-то команду, то подставляются эти лишние символы и соответственно ничего не проходит:

User::Add --user-name $name --email-address $mail

User::Add --user-name 'Вася'  --email-address $'somemail@123545.com\r'


как такого избежать?
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 1
paran0id
@paran0id Куратор тега Linux
Умный, но ленивый
"\r" - это перенос строки. Можно добавить его в IFS:
while IFS=",\r"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы