2013-06-27 5 views
0

Я думаю, что этот вопрос очень прост, но я только начал использовать shell-скрипты.сценарий оболочки для получения csv с curl

меня это до сих пор:

#!/bin/bash 

new_url=$(python get_url.py) 
echo $new_url 
curl -o mycsv_file.csv $new_url 

И это не работает (не создавая mycsv_file.csv файл на текущем каталоге). Я получаю new_url с скриптом python, он работает, потому что когда я делаю echo, он печатает URL-адрес, который я хочу.

Нормально Если я:

curl -o mycsv_file.csv "exampleurl.com/file_example.csv" 

из консоли, он прекрасно работает, он создает mycsv_file.csv на текущем каталоге, но я не знаю, что это проблема со сценарием оболочки. Возможно, это какая-то проблема с "" на url для curl, но я также попытался добавить "" в переменную new_url, и это то же самое.

Любые предложения, пожалуйста?

+0

Попробуйте 'curl -o mycsv_file.csv $ (python get_url.py)' – devnull

+0

не работает, он работает одинаково. – eLRuLL

+0

Что это говорит *? – devnull

ответ

0

Проблема заключалась в том, что сценарий питон был добавление новой строки в конце строки, поэтому завиток проверял другой URL (с новой строки в конце).

+0

' curl -o mycsv_file.csv $ new_url' -> Отсутствие кавычек вокруг '$ new_url 'должен лишить любую новую строку в конце. Правильно? – anishsane

0

Попробуйте это:

curl -o mycsv_file.csv "$new_url" 
+0

Я пробовал, он не работает. Он показывает, что завиток пытается подключиться где-то, но не создает файл 'mycsv_file.csv'. – eLRuLL

+1

Попробуйте без -o таких скручивающих отпечатков на std-out, чтобы убедиться, что он фактически получает данные с сервера. – GregHNZ

+0

Это ничего не показывает, я думаю, что проблема заключается в '' '', но как должен быть правильный способ изменить переменную 'new_url' – eLRuLL