2014-11-06 4 views
0

주어진 웹 사이트 (첫 번째 인수)가 변경되었는지 여부를 알려주는 스크립트를 작성해야합니다.Bash 스크립트. 웹 사이트가 유효한지 확인하십시오

lynx -dump $website | cat > ttt.txt ttt1.txt 

당신이 리디렉션 후이 개 파일을 제공하기 때문에이 쉘이를보고 : 문제 내가 그런 일을 쓴하지만이 작동하지 않고 오류

#!/bin/bash  

website=$1 
time=$2 #frequency of checking the page 
x=1 
spr=$(diff -s ttt.txt ttt1.txt) 
lynx -dump $website | cat > ttt.txt ttt1.txt 
until [ 1 -eq 0 ]; do 
    sleep $2 
    lynx -dump $website | cat > ttt1.txt 

     if [ "$(diff -s ttt.txt ttt1.txt)" = "$spr" ] 
     then 
      lynx -dump $website | cat > ttt.txt 
      echo "Changes were made " 

     else 
      echo "No changes" 

     fi 
done 
+0

어떤 방식으로 작동하지 않습니까? 오류가 있습니까? 변경 사항을 절대로보고하지 않습니까? 항상 변경 사항을보고 하시겠습니까? 완전히 다른 것? 'cat '을 통해 파이핑하는 것은 무의미한데,'lynx'에서 직접 파일로 리다이렉션 할 수 있습니다. –

+0

변경 사항을 다시 공개하지 않습니다. – user3478498

+0

레코드에 대한 변경 테스트를 위해'diff -q' 또는'cmp -s'를 원합니다. 출력을 다른 출력과 비교할 필요가 없습니다. 스크립트가 시작될 때 파일에 어떤 값이 있는지 (즉,'$ spr '의 값은 무엇입니까?)? –

답변

0

이 줄을 찾을 지킬 수있다 :

cat ttt1.txt >ttt.txt 

그래서 고양이는 표준 입력에서 하지, ttt1.txt에서 읽고

,

데모 :

$ cat > a <<END 
hello 
END 
$ cat > b <<END 
world 
END 
$ echo foo | cat > a b 
$ cat a 
world 
$ cat b 
world 

"foo는"이 중 하나를 파일에 저장되지 않습니다.