如何使用简单的 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 是“强”引号,也就是说参数扩展、子 shell 扩展、历史扩展等在其中不起作用。

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

相关内容