【发布时间】:2012-10-20 16:45:21
【问题描述】:
我在 unix 中有简单的命令,比如
cat myfile.txt >&mytemp.txt&
上述命令将简单地创建文件 myfile.txt 的副本。 当我在命令行上执行命令时,它会返回如下进程 ID:
> cat myfile.txt > & mytemp.txt &
[1] 769
>
我在 perl 脚本中形成相同的命令并使用系统调用它,如下所示:
my $cmd="cat myfile.txt>&mytemp.txt&";
my $info = system("$cmd");
但系统命令失败并显示以下错误消息:
sh: mytemp.txt: bad number
我什至尝试转义> 和&。但是错误消息没有变化。
我可以知道这是什么原因吗?我哪里错了?
【问题讨论】:
-
在我的情况下,系统命令不会失败。我得到输出 0。我正在打印
$info。 -
你想做什么?我怀疑这不仅仅是复制文件,您可以使用 File::Copy 来完成。您是否尝试在继续运行的同时在后台启动一个进程(在这种情况下,您是否想从该进程中获取信号)?您是否只想获取进程的输出并放入文件中?你正在运行的进程是否运行了很长时间?
-
@Uri。你说得对,我只是想运行一个后台进程。我只需要退出进程并继续执行下一个语句。我什至不需要任何回报正在运行!
标签: perl unix command-line