eval Bash에서 변수 선언

eval Bash에서 변수 선언

eval에서 변수를 선언하는 방법이 있나요? 예를 들어

function test
{
   eval $1
}

 test "
       value="foo"
       echo "$value"
       "

그러나 그것은 아무것도 보여주지 않습니다. 누구든지 도와줄 수 있나요?

답변1

큰따옴표는 중첩될 수 없습니다.

set -xv쉘이 실제로 실행 중인 것을 확인 하는 데 사용됩니다 .

고정 코드:

#!/bin/bash

function Test() {
   eval "$1"
}

Test 'value=foo
      echo $value'

매개변수는 eval큰따옴표로 묶여 있습니다. 따옴표 없이 사용할 수 있지만 앞에 세미콜론을 삽입해야 합니다 echo.

매개 변수에는 작은따옴표가 필요합니다. 큰따옴표가 필요한 경우 달러 기호를 이스케이프(백슬래시)해야 합니다. 그렇지 않으면 문자열이 함수에 전달되기 전에 변수가 확장됩니다.

관련 정보