以下のコマンドは、単純なbashスクリプトで、MySQL 5.7で一時パスワードを取得するために使用されています。sedの非終動 `s 'コマンド
vzctl exec $VEID 'defaultpass=$(cat /var/log/mysqld.log | grep "A temporary password is generated for" | tail -1 | sed -n 's/.*[email protected]: //p')'
私はテストのためにコマンドを実行したときしかし、それは次のように述べている:
sed: -e expression #1, char 19: unterminated `s' command
誰かが私が間違って正確にやっているものを私に説明していただけます。私は決して専門家ではありませんが、これは正しいと思いました。私はまた "with"を置き換えようとしましたが、うまくいきませんでした。エラーはありませんでしたが、$ defaultpassは空を返します。 。。変数が空白/空であることが働いていないので、多分何か他のものはここに間違っている
正確な文字の原因は不明ですが、正規表現の文字を引用しない場合は 'sed -E'を使用する必要があります – Gnudiff
単一の複雑なコマンドではなく、複数のコマンドに分割してみませんか? 'cat'を使う必要はありません。' grep 'string' filename'を実行してください。 – Sundeep