我正在尝试perl脚本中的代码,需要在bash中调用另一个文件.不确定,这是最好的方法吗?我可以使用system()直接调用它吗?请指导/给我一个示例方式.
从我到目前为止所尝试的:
#!/usr/bin/perl
system("bash bashscript.sh");
Run Code Online (Sandbox Code Playgroud)
Bash:
#!/bin/bash
echo "cdto codespace ..."
cd codetest
rm -rf cts
for sufix in a o exe ; do
echo ${sufix}
find . -depth -type f -name "*.${sufix}" -exec rm -f {} \;
done
Run Code Online (Sandbox Code Playgroud)
我执行perl脚本时出错:没有这样的文件或目录代码测试
意外令牌附近的语法错误`do
如果您只想运行脚本,可以使用反引号或系统:
$result = `/bin/bash /path/to/script`;
Run Code Online (Sandbox Code Playgroud)
要么
system("/bin/bash /path/to/script");
Run Code Online (Sandbox Code Playgroud)
如果你的脚本产生了大量的数据,运行它的最好方法是使用open + pipe:
if open(PIPE, "/bin/bash /path/to/script|") {
while(<PIPE>){
}
}
else {
# can't run the script
die "Can't run the script: $!";
}
Run Code Online (Sandbox Code Playgroud)
您可以使用反引号来执行命令:
$command = `command arg1 arg2`;
Run Code Online (Sandbox Code Playgroud)
还有其他几种附加方法,包括system("command arg1 arg2")执行它们。
这是一个很好的在线参考:http ://www.perlhowto.com/executing_external_commands