我在我的笔记本电脑上安装了ghc 6.12.3和Ubuntu 11.04。我想要一个函数,以超级用户的身份执行一些shell命令(比如sudo update-manager、sudo iwlist等)。我知道System.Process模块有一些函数,比如createProcess、runInteractiveCommand。但这些函数只适用于单个原始命令或单个shell命令,而不能用于复合命令,比如“sudo update-manager”。所有我对这些函数执行“sudo…”的实验都失败了。我用来运行Haskell函数的终端没有响应。
我还看了HSH包。但我觉得那里导出的函数也不适合sudo命令。
我猜执行“sudo update-manager”这样的命令需要两个进程。一个是“sudo”,另一个是“update-manager”。所以我需要调用类似“createProcess”这样的函数两次,并将它们连接起来,以便第二个“update-manager”进程可以从第一个“sudo”进程获得超级用户特权。
提前感谢您的帮助!
我还看了HSH包。但我觉得那里导出的函数也不适合sudo命令。
我猜执行“sudo update-manager”这样的命令需要两个进程。一个是“sudo”,另一个是“update-manager”。所以我需要调用类似“createProcess”这样的函数两次,并将它们连接起来,以便第二个“update-manager”进程可以从第一个“sudo”进程获得超级用户特权。
提前感谢您的帮助!
updateManager
是sudo
的一个参数。sudo
将读取所有参数并创建一个新的命令行。 - fuz