Bash에 변수를 포함 및/또는 평가하는 방법은 무엇입니까?

Bash에 변수를 포함 및/또는 평가하는 방법은 무엇입니까?

질문:

#!/bin/bash

x=$1
perl -lne 'print "$x is $_"' $1

Perl-oneliner를 통해 인쇄할 때마다 $1네 번째 줄에서 평가를 수행하고 작은따옴표 안에 평가된 값을 인쇄하려면 어떻게 해야 합니까 ?$1

답변1

다양한 방법:

  1. Perl oneliner에 대한 입력으로 변수를 전달합니다.

    perl -le 'print "\$x is $ARGV[0]"' "$x"
    
  2. 변수를 내보내고 %ENVPerl의 해시를 사용하여 인쇄합니다.

    export x="$1"
    perl -le 'print "\$x is $ENV{x}"' 
    
  3. Perl 스크립트에는 큰따옴표를 사용하십시오.

    perl -le "print \"\\\$x is $x\""
    

쉘 스크립트에서는 다음과 같이 표시됩니다.

#!/bin/bash

export x=$1

echo "Approach #1"
perl -le 'print "\$x is $ARGV[0]"' "$x"


echo "Approach #2"
perl -le 'print "\$x is $ENV{x}"' 


echo "Approach #3"
perl -le "print \"\\\$x is $x\""

aove를 다른 이름으로 저장 foo.sh하고 "foo"를 인수로 사용하여 실행하면 다음과 같은 결과가 나타납니다.

$ foo.sh foo
Approach #1
$x is foo
Approach #2
$x is foo
Approach #3
$x is foo

관련 정보