我使用shell脚本将echo >
数据发送到$outputfile
,并且始终拥有包含先前数据$oldouptdata
的旧文件。我需要做的是:
echo "datahereto" > $ouptputfile
read $oldouptdata
diff $ouptputfile $olouptdata
if there is a difference then execute function (myfunction) then replace $oldoutputdata data with $outputfile data
这是我的情景。 有任何帮助吗?
答案 0 :(得分:1)
这个小小的bash脚本应该可以解决这个问题
#!/bin/bash
echo "yourstuff" > outputfile
diff outputfile oldfile
if [ $? == 1 ]; then
# they're different!
# call your function
yourfunction
# subst old with new one
cp -f outputfile oldfile
else
# they're the same
fi;
答案 1 :(得分:0)
没有进一步的信息,我会说你可以只替换以前的文件。如果oldfile
与newfile
相同,则替换将是noop,如果它们不同,您也将进入所需的状态。
如果出于某种原因,只有当oldfile
实际上与newfile
不同时才需要替换if ! cmp -s oldfile newfile; then
mv newfile oldfile
fi
,请使用类似
{{1}}