【发布时间】:2014-06-19 17:34:39
【问题描述】:
我遇到过单引号在系统调用中导致 Bash 'unterminated quoted string' 错误的情况。在这种特定情况下,我试图将 $DBI::errstr 插入到 bash 命令中。我在系统调用中使用:
system "echo '$DBI::errstr' | mail -s 'error' usr@mail.com";
所以$DBI::errstr 有时会包含单引号并导致错误。我知道我可以将 $DBI::errstr 括在反斜杠双引号 \"$DBI::errstr\" 中并收工,但必须有更好的方法来处理引号而不使用正则表达式或编写子例程,我很难找到.我也试过quotemeta,但这也会反斜杠空格。
【问题讨论】:
-
你也可以切换到Mail::Sender,这样你就不用引用任何东西了。
-
$DBI::errstr的值是多少?里面有单引号吗?