簡體   English   中英

當命令也有反引號時,如何在perl中的反引號中運行shell命令

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM