+ -
当前位置:首页 → 问答吧 → diff 比较文件的问题

diff 比较文件的问题

时间:2011-03-24

来源:互联网

写了个脚本,其中有一段是比较文件的,很奇怪,我手动执行是没问题的,但是我放到crontab里执行,发现这两句比较的程序就不执行,不知道为啥。

这2段脚本如下:


DB1=db1."$T".dump.gz
DB2=db2."$T".dump.gz
LOCALMD5=`md5sum $DB1 $DB2`
REMOTEMD5=`ssh -i /home/scpdb/.ssh/id_rsa [email protected] "md5sum $REMOTE/$DB1 $REMOTE/$DB2"`

# check db files  md5sum

/usr/bin/diff <( echo $LOCALMD5 |awk '{print $1}' ) <( echo $REMOTEMD5 |awk '{print $1}')
/usr/bin/diff <( echo $LOCALMD5 |awk '{print $3}' ) <( echo $REMOTEMD5 |awk '{print $3}')

if [ $? = 0 ]; then
        echo "`date` DB files md5sum check ok." >> $LOG
else
        echo "`date` DB files md5sum check failed, files name: $DB1,$DB2" >>$LOG
               
        exit 0
fi

而且也没有报错信息,郁闷的

作者: smallfish   发布时间: 2011-03-24

我不管是手动执行还是把这两句话拿出来再命令行下执行都是成功的,但是用
sh -n scriptname
却提示
: line 66: syntax error near unexpected token `('
: line 66: `/usr/bin/diff <( echo $LOCALMD5 |awk '{print $1}' ) <( echo $REMOTEMD5 |awk '{print $1}') >>$LOG'

作者: smallfish   发布时间: 2011-03-24

不能用重定向吧 把< 改为 $
/usr/bin/diff $( echo $LOCALMD5 |awk '{print $1}' ) $( echo $REMOTEMD5 |awk '{print $1}')
/usr/bin/diff $( echo $LOCALMD5 |awk '{print $3}' ) $( echo $REMOTEMD5 |awk '{print $3}')

作者: lionfun   发布时间: 2011-03-24

热门下载

更多