Я создал сценарий, который обращается к веб-сайту с использованием файла данных и выводит ответы сайтов (одна строка XML) в выходной файл. Я хотел бы, чтобы результат начинался с запроса файла данных, а затем на ответ веб-сайта. Когда я повторяю запрос одной строкой и записываю его в выходной файл, а затем пишу ответ сайта в тот же выходной файл, он использует две строки, но мне нужна только одна строка, потому что я хотел бы получить файл с запятой, который я может импортировать в excel.Сценарий оболочки Linux, используйте переменную более одного раза
Это работает, но с наличием двух строк данных:
while read -r line || [[ -n $line ]]
do
datatogather="$line"
echo $datatogather >>outputfile.txt
curl http://login:[email protected]/application.php?$datatogather >>outputfile.txt
echo >>outputfile.txt
done < datafile.txt
Это не работает (хотя это показывает, запятая в выходном файле, так что строка обрабатывается):
while read -r line || [[ -n $line ]]
do
datatogather="$line"
echo $datatogather,>>outputfile.txt | curl http://login:[email protected]/application.php?$datatogather >>outputfile.txt
echo >>outputfile.txt
done < datafile.txt
Зачистка выходного файла его мусорными данными с помощью sed была легкой, чтобы понять, даже чтение входного файла на сайт было очень легко по сравнению с выяснением того, как использовать переменную более одного раза в одной строке. Надеюсь, ты поможешь мне.
Вы изменили 'чтения -r линии || [[$ line]] 'в' read -r line && [[$ line]] '. Это полностью меняет смысл кода. –
Первый случай - это способ иметь дело с [неполными строками] (http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap03.html#tag_03_194) - и, следовательно, файлы, которые не являются [текстовым файлом] (http : //pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap03.html#tag_21_03_00_68) (Мне действительно не нравится тот факт, что все больше и больше людей думают, что это умный и выглядит классно, чтобы читать '-r line || [ [$ line]] ', когда они даже не знают, что такое [строка] (http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap03.html#tag_03_205). –
Последний случай нарушит петля, как только есть пустая строка (или на неполных строках). –