一尘不染

Perl转义参数以执行bash

linux

我在Perl中编写了一些代码,该代码在其执行过程中执行了一些bash命令。我的问题是bash命令属性包含空白,而bash命令执行失败。但是我设法使用了这些参数,只是在参数周围添加了引号。不幸的是,在测试过程中,我发现当\字符放在变量的末尾时,脚本会失败,这显然使bash执行引号转义,并使bash命令失败。例如:

my $arg1 = 'This is sample text which can be put into variable. And a random sign\\';
`echo "$arg1"`

是否有机会自动将变量中的特殊字符转义?


阅读 258

收藏
2020-06-07

共1个答案

一尘不染

在bash中使用单引号要容易得多;那么您唯一需要担心的字符就是单引号本身。

($arbitrary_string) =~ s/'/'"'"'/g;

`echo '$arbitrary_string'`
2020-06-07