我遇到了單引號導致系統調用中Bash'未端接引號字符串'錯誤的情況。在這個特定的情況下,我試圖將$DBI::errstr
插入到bash命令中。我正在使用系統調用:反斜槓在Perl中的單引號
system "echo '$DBI::errstr' | mail -s 'error' [email protected]";
因此$DBI::errstr
有時包含單引號並導致錯誤。我知道我可以將$DBI::errstr
放在反斜槓的雙引號\"$DBI::errstr\"
中,並稱它爲一天,但是必須有更好的方式來處理帶有正則表達式的引號或者編寫一個子例程,這是我找不到的。我也試過quotemeta
,但是這也會反過來削減空間。
[字符串:: ShellQuote](https://metacpan.org/pod/String::ShellQuote)? – tobyink
您也可以切換到[Mail :: Sender](http://p3rl.org/Mail::Sender),因此您不必引用任何內容。 – choroba
'$ DBI :: errstr'的值是什麼?它裏面有單引號嗎? – Oktalist