如何在命令内编写命令

use*_*521 0 unix linux perl

我在perl中使用system命令来执行这样的su命令

system("su -");
Run Code Online (Sandbox Code Playgroud)

以上命令工作正常..

但如果我的命令是这样的话

su -c "echo hello"
Run Code Online (Sandbox Code Playgroud)

那我该如何将这个命令嵌入到perl的系统命令中呢?

mu *_*ort 6

system 可以使用列表而不是单个字符串:

系统列表
系统程序列表

[...]请注意,参数处理因参数的数量而异.如果LIST中有多个参数,或者LIST是具有多个值的数组,则使用列表其余部分给出的参数启动列表的第一个元素给出的程序.

所以你可以避免嵌套引用问题:

system('su', '-c', 'echo hello')
Run Code Online (Sandbox Code Playgroud)