【发布时间】:2011-03-16 00:14:57
【问题描述】:
我一直在环顾四周,但无法弄清楚这一点。我想出了如何执行 shell 脚本的 perl 执行,例如:
#!/usr/bin/perl
$cmd = "nautilus";
system $cmd;
但是,我想从 perl 执行 shell 脚本,它会在命令行上执行类似的操作:
su
$password
nautilus
所以它将成为 root,然后打开 nautilus 浏览器。当我通过单独执行每个命令来尝试此操作时,如下所示,它不起作用..我将不胜感激任何关于正确完成方法的建议这个..谢谢
$cmd = "su";
system $cmd;
$cmd = $password;
system $cmd;
$cmd = "nautilus";
system $cmd;
【问题讨论】:
-
而不是不易读的
$cmd = 'command'; system $cmd,你可以直接使用system 'command'。 -
另外,你为什么不让用户以root身份运行你的脚本呢?然后检查脚本中的根性:
if (id -u` == 0) { print "we are root" }` -
@fengshaun:这是来自 Perl 脚本,所以:
if ($> == 0)
标签: linux perl command-line shell