當兩個人同時修改一個公用文件時,diff3就會發揮作用.它比較兩個人做出的兩套修改內容,創建第3個文件保存并后的輸出結果,并且指出雙方修改的沖突之處.diff3的語法是:
diff
[options] myfile oldfile
yourfile
oldfile是派生出myfile和yourfile的共同源文件.
程序清單6.4
sigrot.1
#!/bin/bash
#sigrot.sh
#Version 1.0
#Rotate
signatures
#Suitable to be run via
cron
############################
sigfile=signature
old=$(cat
num)
let new=$(expr $old+1)
if [ -f $sigfile.$new ];
then
cp $sigfile.$new .$sigfile
echo $new >
num
else
cp $sigfile.1 .$sigfile
echo 1 >
num
fi
程序清單6.5
sigrot.2
#!/bin/bash
#sigrot.sh
#Version 2.0
#Rotate
signatures
#Suitable to be run via
cron
############################
sigfile=signature
srcdir=$HOME/doc/signatures
srcfile=$srcdir/$sigfile
old=$(cat $srcdir/num)
let new=$(expr $old+1)
if [ -f $srcfile.$new ];
then
cp $srcfile.$new $HOME/.$sigfile
echo $new > $srcdir/num
else
cp $srcfile.1 $HOME/.$sigfile
echo 1
> $srcdir/num
fi
程序清單6.6
sigrot.3
#!/bin/bash
#sigrot.sh
#Version 3.0
#Rotate
signatures
#Suitable to be run via
cron
############################
sigfile=signature
old=$(cat
num)
let new=$(expr $old+1)
if [ -f $sigfile.$new ];
then
cp $sigfile.$new .$sigfile
echo $new >
num
else
cp $sigfile.1 .$sigfile
echo 1 >
num
fi
return
0;
diff3在列舉hunk的同時給出了生成這些hunk所需的一個或多個命令(仍舊使用ed形式).這些命令如下:
.file:la 該hunk出現在第1行后,但在file中不存在這個hunk,所以如果要依據file生成其他文件,必須加入在第1行后這個hunk.
.file:rc 該hunk由file的中第r行組成,因此在生成其他文件時必須對該行進行指定的修改.