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