Итак, у меня есть скрипт, который, когда я дам ему два адреса, будет искать две HTML-ссылки:
echo "http://maps.google.be/maps?saddr\=$1\&daddr\=$2" | sed 's/ /%/g'
Я хочу отправить это, wget
а затем сохранить вывод в файле с именем temp.html
. Я пробовал это, но это не работает. Может кто-нибудь объяснить, почему и / или дать мне решение, пожалуйста?
#!/bin/bash
url = echo "http://maps.google.be/maps?saddr\=$1\&daddr\=$2" | sed 's/ /%/g'
wget $url
bash
shell
command-line
LotoLo
источник
источник
Ответы:
Вы можете использовать backticks (`) для оценки команды и замены в выводе команды, например:
В твоем случае:
источник
$(...)
предпочтительнее обратных кавычек .Вы можете использовать «xargs». Тривиальный пример:
Вы должны позаботиться о том, чтобы xargs не разделял свой стандартный ввод на два или более вызовов comman («cat» в приведенном выше примере).
источник
вы на самом деле не выполняете свою строку URL:
источник
Кажется, вы могли бы использовать комбинацию ответов здесь. Я предполагаю, что вы хотите заменить пробелы на их экранированные значения ascii в URL. Для этого вам необходимо заменить их на «% 20», а не только на «%». Вот решение, которое должно дать вам полный ответ:
Обратные пометки указывают, что вложенная команда должна быть интерпретирована первой, а результат отправлен в wget. Обратите внимание, что я избежал пробела и% chars в команде sed, чтобы предотвратить их неправильное толкование. Параметр -q для wget предотвращает обработку выходных данных команды, выводимой на экран (удобно для сценариев, когда вас не интересует состояние в работе), а параметр -O указывает выходной файл. К вашему сведению, если вы не хотите сохранять выходные данные в файл, а просто просматриваете их в терминале, используйте «-» вместо имени файла, чтобы указать стандартный вывод.
источник
Wget также принимает стандартный ввод с
-
переключателем.Если вы хотите сохранить вывод в файл, используйте
-O
переключатель.источник