0

我需要编写一个脚本来说明给定网站(第一个参数)是否已更改。我写了类似的东西,但它不起作用并且无法继续找到错误

#!/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 个文件,所以 shell 会看到:

cat ttt1.txt >ttt.txt

所以 cat 是从 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 回答