Если данные из файла могут содержать пробелы, и вы не возражаете против пробелов в имени файла в каталоге /home/user/archive
, то у вас должно получиться все в порядке.
Учитывая содержимоеостальную часть URL вы можете просто написать:
while read line
do
curl "https://gdata.youtube.com/feeds/api/users/${line}/subscriptions?v=2&alt=json" \
> "/home/user/archive/${line}"
done < textfile.txt
, где строго ${line}
может быть просто $line
в обоих местах.Это работает, потому что строки исправлены и не содержат метасимволов оболочки.
Поскольку ваш код близок к этому, но вы утверждаете, что видите ключевые слова из файла в неправильном месте, может бытьнемного переписать для простоты отладки по порядку:
while read line
do
url="https://gdata.youtube.com/feeds/api/users/${line}/subscriptions?v=2&alt=json"
file="/home/user/archive/${line}"
curl "$url" > "$file"
done < textfile.txt
Поскольку строки могут заканчиваться пробелами, кажется (вам нужно расширить пробелы до +
в URL?), кавычкивокруг переменных настоятельно рекомендуется.Теперь вы можете запустить сценарий с помощью sh -x
(или добавить строку set -x
к сценарию) и посмотреть, что оболочка думает, что она делает, как она это делает.