Shell命令成功是一般返回0

下面一段代码

my $cmd = "scp $source $dest";
`$cmd` or die $!

在执行这段代码的时候,经常会出现这样一个错误,形如illegal seek xxx,但是会发现其实文件已经正确的拷贝过去了。什么原因呢?因为`$cmd`的返回值并不能表示错误信息,也就是说这个命令成功的返回值是0,而$!中存储的是前面某个命令的错误代码。详情看这里

http://www.megasolutions.net/perl/Illegal-seek-50808.aspx

所以这种写法本身就不正确。

posted on 2012-01-16 15:26  perlman  阅读(3843)  评论(0编辑  收藏  举报

导航