구성 파일의 {$pear_root}
인스턴스를 쉘 스크립트의 $PEAR_ROOT
변수로 바꾸려고합니다. "배쉬 이스케이프 문자에 대한 메모"에서 here의 방법을 사용하여간단한 BASH 문자열 바꾸기
내가 가진 :
ESC_PEAR_ROOT="${PEAR_ROOT//\//\\/}"
sed -i "s/{\$pear_root}/${ESC_PEAR_ROOT}/"../.serverconfig/test.txt
을 내가 다시 (34) 받고 있어요 :이 지원되지 않는 것을 의미 할 수있다 생각 나쁜 대체합니다.
또는 perl
을 사용하여이 작업을 수행 할 때 동일한 오류가 발생하므로이 문제는 s/find/replace/
을 사용하는 것으로 보입니다.
APP_ROOT=$(php ./scripts/get_realpath.php '../')
PEAR_ROOT="$APP_ROOT/pear"
ESC_PEAR_ROOT="${PEAR_ROOT//\//\\/}"
sed -e "s/{\$pear_root}/${ESC_PEAR_ROOT}/"../.serverconfig/test.txt
그리고 PEAR_ROOT
에서 경로로 대체 test.txt
에 {$pear_root}
의 모든 인스턴스와 끝까지 :
이 작업을 수행하는 가장 간단한 방법은 무엇입니까?
저는이 방법에 붙어 있지 않습니다. 신뢰할 수있는 것은 무엇이든 할 수 있습니다.
:
최종 결과로 결국? 예를 들어 줄 수 있습니까? –
표현의 두 번째 부분에서 $를 벗어나지 않았습니다. – John3136
@evil otto : ESC_PEAR_ROOT는 모든 슬래시가 있어야했던 곳으로 끝날 것이라고 생각합니다. 나는이 한 문장을 위해 그것을 필요로하지만 나중의 사용을 위해 원래의 PEAR_ROOT도 필요로한다. PEAR_ROOT을 벗어나면 나중에 경로로 사용할 수 없습니다. – Eli