我在perl中使用system命令来执行这样的su命令
system("su -");
以上命令工作正常..
但如果我的命令是这个
su -c "echo hello"
然后我如何将此命令嵌入到perl的系统命令中?
答案 0 :(得分:6)
system
可以使用列表而不是单个字符串:
系统列表
系统计划列表[...]请注意,参数处理因参数的数量而异。如果LIST中有多个参数,或者LIST是一个具有多个值的数组,则启动由列表的第一个元素给出的程序,其中包含列表其余部分给出的参数。
所以你可以避免嵌套引用问题:
system('su', '-c', 'echo hello')
答案 1 :(得分:3)
您可以通过使用不同的报价集来简单地引用转义:
system('su -c "echo hello"');
或者通过“转义”引号本身:
system("su -c \"echo hello\"");
或者作为个别参数,如mu is too short
所指出:
system("su", "-c", "echo hello");