使用perl连续运行多个系统命令

时间:2013-08-28 15:19:08

标签: perl

我正在尝试在我的团队服务器上编写一些内容并遇到一些困难。

对于我正在编写脚本的部分内容,我需要让用户通过sudo su APPUSER切换用户,然后运行几个命令。但是,sudo被锁定在我们的服务器上,我无法运行类似:sudo su APPUSER -c COMMAND的内容。我已经要求修复,系统管理员总是说“不”。

我目前正在使用perl来编写脚本,我需要使用appuser而不是开发人员的用户来运行大约三个命令。我可以通过连续执行每个命令在命令行上执行此操作,但我不知道如何让perl执行此操作。

如何让perl在命令行上执行多个命令,使其在上一次执行后不会丢弃shell / state?即,运行多个system电话无效。

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。

打开一个bash进程并读写它:

#!/usr/bin/perl
use strict;
use warnings;

open(BASH, "|-", "bash");

print BASH "sudo su APPUSER\n";
print BASH "touch /home/APPUSER/sudobashtest\n";
close(BASH);

答案 1 :(得分:0)

这不起作用吗?

system("sudo su APPUSER && command1 && command2");