【发布时间】:2014-11-06 20:28:05
【问题描述】:
我需要编写一个脚本来说明给定网站(第一个参数)是否已更改。我写了类似的东西,但它不起作用,无法继续查找错误
#!/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
【问题讨论】:
-
在什么情况下不起作用?你有错误吗?是从不报告变化吗?总是报告变化?完全不同的东西?同样通过
cat进行管道传输是没有意义的,您可以直接从lynx重定向到文件。 -
它从不报告更改。
-
您希望
diff -q或cmp -s用于记录更改测试。无需将输出与任何其他输出进行比较。脚本启动时这些文件有什么值(即$spr的值是多少?)? -
文件为空,变量spr用于存放文件相等时的值。
-
那么您的
if测试是否倒退?如果$spr是相同的输出,那么当新的diff输出等于$spr时,这是否意味着没有任何更改,而当它们不同时则意味着进行了更改?