그래서 두 개의 주소를 제공하면 두 개의 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
답변1
백틱(`)을 사용하여 명령을 평가하고 해당 출력을 바꿀 수 있습니다. 예를 들면 다음과 같습니다.
echo "Number of files in this directory: `ls | wc -l`"
귀하의 경우:
wget `echo http://maps.google.be/maps?saddr\=$1\&daddr\=$2 | sed 's/ /%/g'`
답변2
"xargs"를 사용할 수 있습니다. 간단한 예:
ls -1 *.c | sort -n | xargs cat
xargs는 stdin을 두 개 이상의 명령 호출(위 예에서는 "cat")로 분할하지 않는다는 점에 유의해야 합니다.
답변3
실제로 URL 줄을 실행하지 않습니다.
#!/bin/sh
url="$(echo http://maps.google.be/maps?saddr\=$1\&daddr\=$2 | sed 's/ /%/g')"
wget $url
답변4
xargs
한 명령의 출력을 다른 명령의 매개변수에 넣는 가장 좋은 옵션입니다.
command1의 출력이 이고 다음 명령이 이를 인수로 3
사용하기를 원한다고 가정 하면 다음과 같은 것이 필요합니다.3
command2 3(which is output of 1st command) 4 5
그래서 이것을 위해 당신은 할 수 있습니다
command1 | xargs -I{} command2 {} 4 5
여기서 4와 5는 필요할 수 있는 두 개의 추가 매개변수입니다 command2
.
첫 번째 명령의 출력을 원하는 곳에 중괄호를 넣을 수 있습니다.
그래서, 사용
command1 | xargs -I{} command2 {}