如何在后台运行Perl系统命令?
发布时间:2020-12-15 22:04:22 所属栏目:大数据 来源:网络整理
导读:#!/usr/bin/env perluse warnings; use strict;use 5.012;use IPC::System::Simple qw(system);system( 'xterm','-geometry','80x25-5-5','-bg','green','' );say "Hello";say "World"; 我试过这样在后台运行xterm-command,但它不起作用: No absolute path
#!/usr/bin/env perl use warnings; use strict; use 5.012; use IPC::System::Simple qw(system); system( 'xterm','-geometry','80x25-5-5','-bg','green','&' ); say "Hello"; say "World"; 我试过这样在后台运行xterm-command,但它不起作用:
什么是正确的方式使其工作? 解决方法
Perl的
system功能有两种模式:
>取一个单一的字符串并将其传递到命令shell,以允许处理特殊字符 在第一种形式中,你必须小心地转义可能对shell有特殊意义的字符.第二种形式通常更安全,因为参数直接传递给被执行的程序,而不涉及shell. 在你的情况下,你似乎正在混合这两种形式. The&字符只有传递给shell时才具有“在后台启动该程序”的意思.在你的程序中,&符号被作为第五个参数传递给xterm命令. 正如Jakob Kruse所说,简单的答案是使用单串形式的系统.如果任何参数来自不信任的来源,您将不得不使用引用或转义来使其安全. 如果你喜欢使用多参数形式,那么你需要调用fork(),然后可能使用exec()而不是system(). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |