間違い

間違い

これは私の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

おすすめ記事