単純なbashラインを使用してMySQLで「待機中」とマークされたプロセスを自動的に終了する方法

単純なbashラインを使用してMySQLで「待機中」とマークされたプロセスを自動的に終了する方法

私は成功せずに次のbash行を実行しようとしています。同じ行の多くのバリエーションを試しましたが、成功しませんでした。誰かがエラーを発見したいと思います。

mysql -u user --password=\m\y\p\a\s\s  -h myhost -e 'kill $(mysql -u user --password=\m\y\p\a\s\s -h myhost -e "show processlist;" | grep Waiting | awk '{print $1}' )'

デフォルトでは、 $(...) 内部では待機状態のプロセスのリストを作成しています。そのコードの外では、そのプロセスを終了しようとします。これは$()コードのbashの問題です。これが私が投稿した理由です。ここにあるので引用符がある部分があるようですが、修正する方法がわかりません。

答え1

あなたの引用は非常に強力です。

本当。

'sは「強力な」引用であり、パラメータ拡張、サブシェル拡張、履歴拡張などは何も影響しません。

$ echo '$(echo foo)'
$(echo foo)
$ echo "$(echo foo)"
foo

関連情報