이 명령을 입력하려고 하면 결과 값은 다음과 같습니다.
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