我尝试使用以下引号创建别名:
alias myalias='ps -ef | grep tomcat | kill -9 `awk {'print $2'}`'
但正如你所看到的,我已经'
在 awk
所以我试图替换
awk {'print $2'}
和
awk {"print $2"}
但是当我运行这个别名时,奇怪的事情发生在我身上,即控制台窗口被关闭......我怎样才能让这个别名工作
我尝试使用以下引号创建别名:
alias myalias='ps -ef | grep tomcat | kill -9 `awk {'print $2'}`'
但正如你所看到的,我已经'
在 awk
所以我试图替换
awk {'print $2'}
和
awk {"print $2"}
但是当我运行这个别名时,奇怪的事情发生在我身上,即控制台窗口被关闭......我怎样才能让这个别名工作
使用函数而不是别名可以避免大多数引用问题:
如果您使用的是 awk,则不需要 grep。
或者,坚持使用一个函数并避免几乎所有你正在做的工作:
您可以用双引号“粘合”单引号:
这是一个有趣的参考:https ://stackoverflow.com/questions/1250079/escaping-single-quotes-within-single-quoted-strings
但是,有更简单的解决方案来终止进程,而不是使用多个管道或额外的单引号(参见其他答案)。在这里,我只是想回答你最初的问题,保持你的逻辑。
以下是别名引用的要点:
几乎没有什么不能做的,几乎任何可以在bash命令行上输入的东西都可以放入alias中。
不要运行这些多个管道,而是使用参数来
ps
仅获取 pid 开始: