我试图运行以下 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