Perl命令System的使用与Shell的关联很紧密
文章目录
今天在写Perl脚本的时候,碰到一个语句:
system (“copy /y $XMLInputFile $UpdatedXMLFile”) == 0 or die “$!\n”;
刚开始没注意,在Cygwin下死活执行不了,提示错误说:
$ perl IntruShieldSigUpdate_v1.pl input.txt
No such file or directory
后来想到了,可能copy只是Windows才有的命令,于是切换到Windows Command Line下,终于可以顺利运行了。
System调用的系统命令,与你在哪个Shell里跑有很大的关系。在Cygwin下,就只能用Cygwin能识别的命令;在Windows Command Line里,就只能用Windows Shell能识别的命令。
如果要方便移植的话,还是推荐多用一用cpan的包,比如这里就应该用File::copy来实现拷贝和移动文件的功能。不过,如果使用你脚本的人,没有安装这个File::copy包,也会碰到一系列的问题。
文章作者 cookwhy
上次更新 2008-12-10