なぜこのbashスクリプト
ssh $SERVER bash <<EOF
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME" $PARAM_FILE
exit
EOF
出力->
sed: -e expression #1, char 53: unterminated `s' command
なぜこのbashスクリプト
ssh $SERVER bash <<EOF
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME" $PARAM_FILE
exit
EOF
出力->
sed: -e expression #1, char 53: unterminated `s' command
回答:
のs
コマンドsed
は、特定の構文を使用します。
s/AAAA/BBBB/options
where s
は置換コマンド、置換AAAA
する正規表現、置換対象の正規表現BBBB
、およびoptions
グローバル(g
)や大文字と小文字を区別しない()などの置換コマンドのオプションのいずれかですi
。
あなたの特定のケースでは、最後のスラッシュが欠落していましたが/
、それを追加するとsed
うまく動作します:
➜ ~ sed 's/database_name: [^ ]*/database_name: kartable_$ME/'
database_name: something
database_name: kartable_$ME
info sed 'The "s" Command'
sコマンドの完全な説明と使用法が含まれています。
/
not が欠落していましたがg
、これg
はグローバル向けであり、望ましくない可能性があります。