perl 运行系统命令失败,但在bash中直接执行相同的命令可以工作

iq0todco  于 8个月前  发布在  Perl
关注(0)|答案(1)|浏览(89)

我正在perl中运行以下代码

my $exp_date = `date --date="$(openssl x509 -enddate -noout -in certificate.pem | cut -d= -f 2)"  --iso-8601`;

我得到:
日期:无效日期'100 100 537 539 847 6210 70720 7..
确切的命令在命令行中运行

date --date="$(openssl x509 -enddate -noout -in certificate.pem | cut -d= -f 2)"  --iso-8601

打印iso8601中的实际日期。
在Perl中运行它时我做错了什么?

lrl1mhuk

lrl1mhuk1#

Perl特殊变量$((参见文档)包含进程的真实的组ID。反引号插入变量。为了防止插入,用反斜杠转义美元符号:

my $exp_date = `date --date="\$(openssl x509 -enddate -noout -in certificate.pem | cut -d= -f 2)"  --iso-8601`;
#                            ~

相关问题