J33*_*3nn 2 linux bash shell perl
我在Perl中编写了一些代码,它在执行过程中执行一些bash命令.我的问题是当bash命令属性包含空格时,bash命令执行失败.但我已经设法使用这些参数简单地在参数周围添加引号.不幸的是,在测试期间,我发现当\字符放在变量的末尾时,我的脚本会失败,这显然会逃脱bash执行引用并且失败bash命令.例如:
my $arg1 = 'This is sample text which can be put into variable. And a random sign\\';
`echo "$arg1"`
Run Code Online (Sandbox Code Playgroud)
有没有机会自动转义变量中的特殊字符?
在bash中使用单引号要容易得多; 那么你需要担心的唯一一个角色就是单引号本身.
($arbitrary_string) =~ s/'/'"'"'/g;
`echo '$arbitrary_string'`
Run Code Online (Sandbox Code Playgroud)