patch就是修補的意思,當我們的程式出錯的時候,就需要
對程式做修補(patch)的動作。
diff是Unix上的一個指令,它可以比較兩個東西的不同處在哪兒...
利用diff我們可以做出patch檔來供修補之用。
Example:
oldwebget.pl是一個有bug的file,內容如下:
==============================================
#!/usr/bin/perl -w
$_ = shift(@ARGV);
$_ =~ s/<\w+>|<\W\w+>//g;
$_ =~ s/<.*>//g;
$_ =~ s/\s+//g;
^^^^^^^^^^^^^^
print;
===============================================
newwebget.pl是一個修正過後的file,
===============================================
#!/usr/bin/perl -w
$_ = shift(@ARGV);
$_ =~ s/<\w+>|<\W\w+>//g;
$_ =~ s/<.*>//g;
$_ =~ s/\s+//;
^^^^^^^^^^^^^^^
↑注意這邊的不同
print;
================================================
執行 diff oldwebget.pl newwebget.pl > patch.diff
會產生patch.diff的修補檔,內容可能如下:
===============================================
16c16
< $_ =~ s/\s+//g;
---
> $_ =~ s/\s+//;
===============================================
接下來你就可以用 patch oldwebget.pl
詳細情形請參考man diff 和 man patch...................
--
--
No comments:
Post a Comment