この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
答え1
s
sed
、特定の構文を使用するコマンド:
s/AAAA/BBBB/options
は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'
■ コマンドの完全な説明と使用法が含まれています。
答え2
/
ついに消えた。
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME/" $PARAM_FILE
答え3
私の場合は(珍しい問題)sedコマンドに\ nがありました。 Jenkinsパイプラインで実行またはコピーして貼り付けると、複数行のコマンドになり、このエラーで失敗します。
解決策はバックスラッシュを避けることです。