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