複数行入力の改行文字を "\n" に置き換えます。

複数行入力の改行文字を "\n" に置き換えます。

対話型bashスクリプトを使用してSQLコマンドを生成しようとしましたが、MySQLで使用するためにエスケープする必要がある複数行の文字列があります。

コメントは複数行の文字列として定義されています。

notes=$(echo "$notes" | php -r 'echo mysql_escape_string(fgets(STDIN));');

ただし、1行だけが返されます。複数行の文字列を正しくエスケープして返す方法は?

答え1

パターン交換の使用:

notes=${notes//$'\n'/\\n}

関連情報