Linux 如何在命令内部编写命令
我在perl中使用系统命令来执行su命令,如下所示Linux 如何在命令内部编写命令,linux,perl,unix,Linux,Perl,Unix,我在perl中使用系统命令来执行su命令,如下所示 system("su -"); 以上命令工作正常 但如果我的命令是这样的 su -c "echo hello" 那么如何将该命令嵌入到perl的系统命令中呢 您需要简单的引号转义,或者使用不同的引号集: system('su -c "echo hello"'); 或者通过“转义”引用本身: system("su -c \"echo hello\""); 或者作为单个参数,如mu太短指出: system("su", "-c", "echo
system("su -");
以上命令工作正常
但如果我的命令是这样的
su -c "echo hello"
那么如何将该命令嵌入到perl的系统命令中呢 您需要简单的引号转义,或者使用不同的引号集:
system('su -c "echo hello"');
或者通过“转义”引用本身:
system("su -c \"echo hello\"");
或者作为单个参数,如mu太短
指出:
system("su", "-c", "echo hello");
可以使用列表而不是单个字符串:
系统列表系统程序列表 […]请注意,参数处理根据参数的数量而变化。如果列表中有多个参数,或者列表是一个具有多个值的数组,则使用列表其余部分提供的参数启动列表第一个元素提供的程序 因此,您可以通过以下方式避免嵌套报价问题:
system('su', '-c', 'echo hello')
这是比较安全的路线。它不需要一个外壳。