Sed는 결과를 변수에 저장할 수 없습니다.

Sed는 결과를 변수에 저장할 수 없습니다.

이 명령을 입력하려고 하면 결과 값은 다음과 같습니다.

sed "s/\$ip/${ip}/g" xdebug.conf

이 문서에서 제공 xdebug.conf:

zend_extension = xdebug.so
xdebug.remote_enable = 1
xdebug.remote_host = $ip
xdebug.remote_port = 9091
xdebug.max_nesting_level = 1000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=true
xdebug.remote_log=xdebug.log

라는 변수에 $conmfiguration.

이를 달성하기 위해 다음을 시도합니다.

ip="125.12.22.1"
$configuration=$(sed "s/\$ip/${ip}/g" xdebug.conf)

그러나 다음과 같은 이상한 결과가 나타납니다.

=zend_extension: 명령을 찾을 수 없습니다

왜 이런 일이 일어나는지 아십니까?

답변1

여기,

$configuration=$(sed "s/\$ip/${ip}/g" xdebug.conf)

둘 다 $configuration확장 $(sed ...)되었습니다. 변수가 비어 있으면 다음을 얻습니다.

=zend_extension = xdebug.so ...

첫 번째 단어는 명령으로 처리되고 나머지 단어는 인수로 처리됩니다. 쉘은 찾기를 시도하고 =zend_extension실패하고 불평합니다.

$과제의 왼쪽에서 제거하면 과제가 작동합니다. 이 출력은 다음 foo bar과 같습니다.

var=$(echo foo bar)
echo $var

관련 정보