0

我正在使用 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 

这是我的场景。有什么帮助吗?

4

2 回答 2

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;
于 2013-01-07T13:35:05.883 回答
0

没有更多信息,我会说你可以替换以前的文件。如果oldfile与 相同newfile,则替换将是 noop,如果它们不同,您也将进入所需的状态。

oldfile如果,无论出于何种原因,仅当它实际上不同于 时才需要替换newfile,请使用类似

if ! cmp -s oldfile newfile; then
  mv newfile oldfile
fi
于 2013-01-07T13:29:20.690 回答