执子之手

与子偕老


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 搜索
close

在alias命令中使用单引号

时间: 2017-07-16   |   分类: 运维     |   阅读: 324 字 ~1分钟   |   访问: 0

Linux中的alias命令可以将一条复杂的命令缩短为一个简单的指令,实际工作中经常会用到。使用alias的时候命令本身需要使用单引号包括起来。但是如果命令本身中包含单引号怎么办呢?

例如,下面这条命令:

1ps -ef | grep shadowsocks/server.py | grep -v grep | awk '{print $2}'

其作用是获取任务的pid。其中用到的awk的参数需要用到单引号。alias也可以使用双引号,但是如果用双引号,其中的内容会被转义解释成具体获得的值。而不是命令本身。

这时可以使用 '"'"' 替代单引号。解释一下:

  • ’ 使用单引号结束第一段;
  • " 开启第二段,这里使用双引号;
  • ’ 单引号本身;
  • " 结束第二段,使用双引号;
  • ’ 开启第三段,使用单引号。

所以最后的语句命令如下:

1alias stopssr='pid=`ps -ef | grep shadowsocks/server.py | grep -v grep | awk '"'"'{print $2}'"'"'`;if [ -n "$pid" ]; then kill -9 $pid; fi'

附录A. 参考资料

  • How to escape single-quotes within single-quoted strings?
#Linux# #Shell#
如何无密码登录SSH
如何在Mac上添加一个虚拟IP
  • 文章目录
  • 站点概览
Orchidflower

Orchidflower

Do one thing at a time, and do well.

77 日志
6 分类
84 标签
GitHub 知乎 OSC 豆瓣
  • 附录A. 参考资料
© 2009 - 2024 执子之手
Powered by - Hugo v0.113.0
Theme by - NexT
ICP - 鲁ICP备17006463号-1
0%