0

特定の Web サイト (最初の引数) が変更されたかどうかを通知するスクリプトを作成する必要があります。私はそのようなことを書きましたが、それは動作せず、エラーを見つけ続けることができません

#!/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
4

1 に答える 1

0

この行が問題です:

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

リダイレクト後に 2 つのファイルを指定したため、シェルは次のように認識します。

cat ttt1.txt >ttt.txt

したがって、cat はstdin からではなく、ttt1.txt から読み取っています。


デモ:

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

「foo」はどちらのファイルにも保存されません。

于 2014-11-06T21:24:23.627 に答える