$user="abcd"
$access="ohsdba";
my $log_file="abc.log";
my @pb_ohsdba="pbrun $access -u $user -t 1-2 2> /dev/null << EOF
echo `perl cpu_main.pl $user $log_file`
EOF";
$pb_out=system(@pb_ohsdba);
这是我尝试从包装器脚本执行cpu_main.pl的方法。 pbrun工作正常但cpu_main.pl在传递参数时不会被执行。但是,如果没有传递给cpu_main.pl的参数,脚本运行正常。
如果传递参数,则只会执行cpu_main.pl中的一行。然后将控件传递回包装器脚本。
我这样做有什么不对吗?还有其他出路吗?
答案 0 :(得分:1)
$access="ohsdba";
my @pb_ohsdba="pbrun $access -u $user -t 1-2 2> /dev/null << EOF
perl /tmp/SRGAutomation/bin/cpu_main.pl $user $log_file
EOF";
$pb_out=system(@pb_ohsdba);
需要提供脚本的路径。这是因为在pbrun之后路径会发生变化。
然而,拥有相对路径总是更好。