[英]how to run a shell command in perl in backticks when command also has backticks
例。
$output= `eval `environment` ; echo $Variable` ;
我想執行此命令
eval `environment` ; echo $Variable
在perl腳本中。
$output= `eval `environment` ; echo $Variable` ;
使用“類似報價的運算符”中的qx//
形式 :
my $output = qx{eval `environment` ; echo $Variable};
但這仍然可能無法滿足您的要求,因為$Variable
已由Perl評估和插值。 要解決此問題:
# single quotes:
my $command = q{eval `environment` ; echo $Variable};
# and then execute it:
my $output = qx{$command};
另外,一點技巧:
my $output = qx'eval `environment` ; echo $Variable';
當將'
用作類似引號的運算符的字符時,它將禁止變量插值。
您可以使用Backtiks“此處文檔”-有關詳細信息,請參見man perlop
Backtics子節。 如果要避免perl進行變量擴展,必須對$符號進行轉義。
#!/usr/bin/perl
use strict;
use warnings;
my $output = <<`END`;
eval `environment` ; echo \$Variable
END
print $output;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.