我有一个scneario,我必须执行一个java程序&因为我必须首先设置类路径&在单个perl程序下调用的所有内容。我正在尝试下面不起作用的命令:
$command1="echo \" First command\"";
$command2="echo \" Second command\"";
system("$command1;$command2");
上面的命令在LINUX中工作正常但在windows中没有。请帮我执行。
答案 0 :(得分:2)
在大多数平台上,
system($shell_command);
装置
system('sh', '-c', $shell_command);
在Windows上,它意味着更接近
system('cmd', '/x', '/c', $shell_command);
继续使用bourne shell命令,但需要明确指定bourne shell。
system('sh', '-c', 'echo 1 ; echo 2');
由于计算机不太可能安装了bourne shell,因此不太可能。
使用本地shell的正确语法。
if ($O eq 'MSWin32') {
system('echo 1 & echo 2');
} else {
system('echo 1 ; echo 2');
}
两次致电system
。
system('echo 1');
system('echo 2');
答案 1 :(得分:1)
如果要在命令之间使用;
,则必须调用shell。这是;
my @cmds =(
[ "echo", q{" First command"} ],
[ "echo", q{" Second command"} ],
);
system (@$_) for @cmds;
答案 2 :(得分:-1)
这就是你正在尝试的
$a=" echo wasssup people";
$b=" echo hi guys";
system("$a"."$b");