重定向exec'd命令的stdout而不使用shell元字符

时间:2013-10-23 23:49:41

标签: perl

exec 'foo.sh > foo.out'

导致问题,因为命令是通过shell调用而不是直接执行。如何首先将重定向设置为foo.out,然后再设置为exec 'foo.sh'

1 个答案:

答案 0 :(得分:1)

open(STDOUT, '>', 'foo.out') or die $!;
exec 'foo.sh', @args;

如果@args为空,则保证“直接执行”,

exec { 'foo.sh' } 'foo.sh', @args;