실수

실수

이것은 내 run.sh 파일입니다.

#!/bin/sh

before=$(cat <<EOF
require SYSPATH.'core/Bootstrap'.EXT;
EOF
)

after=$(cat <<EOF
if(strpos($_SERVER['SCRIPT_NAME'], 'phpunit'){
sometext # <= without it works fine!
EOF
)

sed -i.bak "s|$before|$after|g" "$2"

실수

sed: -e 표현식 #1, 문자 79: 종료되지 않은 's' 명령

잘 작동하지만 여러 줄의 텍스트를 바꾸고 싶습니다!

#!/bin/sh

before=$(cat <<EOF
require SYSPATH.'core/Bootstrap'.EXT;
EOF
)

after=$(cat <<EOF
if(strpos($_SERVER['SCRIPT_NAME'], 'phpunit'){
EOF
)

sed -i.bak "s|$before|$after|g" "$2"

답변1

이로 인해 문제가 해결되었습니다.

if(strpos($_SERVER['SCRIPT_NAME'], 'phpunit'){ \n \ # <= BACKSLASH needed!
sometext

관련 정보