2015-01-27 2 views
1

bash 스크립트에는 실제 경험이 없지만 웹 사이트 프로젝트의 일부로 GETHTTP를 통해 xml (curl 사용)을 검색하는 bash 스크립트를 실행 중입니다. 그런 다음 파일로 출력하고 싶습니다. 하지만 xml에 특정 문자열이 포함되지 않은 경우에만이 작업을 수행하려고합니다. 데이터 제공 업체는 6 분마다 한 번만 GETHTTP를 수행 할 수 있습니다.curl 조작에 기반한 변수를 bash 스크립트의 문자열로 변환하는 방법

$ URL =

$ 출력 = 삽입 파일 이름과 여기에 경로

"GET HTTP 여기에 URL을 삽입"다음과 같이

나는 파일에 XML 출력을 검색 할 수 있어요

컬 -s "$의 URL"

문 문자열을 확인하는 경우, 내가 변수에 컬의 출력을 할당 한 소개 -o $ 출력, 어 무형 문화 유산 그때를 검색 할 수 있습니다 :

DATA = $을 (-s "$ URL을"곱슬 곱슬)

경우 [[$ 데이터 == mystring에 *]

다음 $ DATA -o $ 출력

Fi를 그러나, 내 큰 문제는 내가이 시도 때, 그것은 $ DATA에 보이는 때마다 그것은 시간 내에 내 허용 시도를 초과 컬을 다시 실행한다는 것입니다.

컬의 출력을 변수가 호출 될 때마다 재실행하지 않고 재사용 할 수있는 변수에 어떻게 할당합니까?

나는 그것을 단지 문자열로 변환 할 수 있다고 생각했지만 내 검색에는 아무것도 나오지 않아 잘못된 검색어를 사용하고 있습니다.

답변

1

이 작동합니다 :

URL="http://your.url/some/path" 
OUTPUT="/path/to/output" 
DATA=$(curl -s "$URL") 

if echo $DATA | grep "mystring" >/dev/null 
then 
    echo $DATA > $OUTPUT 
fi 

$DATA은 오랫동안 curl 호출이 성공적으로 문자열입니다 (그리고 텍스트를 반환). 그런 다음 용어를 검색하여 파일로 출력하려면 올바르게 조작해야합니다.

+0

위대한 작품입니다. 필자는 터미널 창에 컬 (curl) 출력을 반향하지 않고 파일을 작성하기 만하면됩니다. 출력을 터미널에 실제로 출력하지 않고 $ OUTPUT에 쓰는 방법이 있습니까? – MrDave

+0

예, 표시된 방법입니다. 표시되는 내용은 grep 명령의 출력입니다. 해당 라인을 업데이트했습니다. – arco444

관련 문제