加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 管道输出切割

发布时间:2020-12-13 19:42:16 所属栏目:Linux 来源:网络整理
导读:我试图获取执行脚本的 shell的名称. 为什么 echo $(ps | grep $PPID) | cut -d" " -f4 工作时间 echo ps | grep $PPID | cut -d" " -f4 才不是? 解决方法 原因是这样 echo ps 只打印字符串ps;它不运行程序ps.您的命令的更正版本将是: ps | grep $PPID | cu
我试图获取执行脚本的 shell的名称.

为什么

echo $(ps | grep $PPID) | cut -d" " -f4

工作时间

echo ps | grep $PPID | cut -d" " -f4

才不是?

解决方法

原因是这样
echo ps

只打印字符串ps;它不运行程序ps.您的命令的更正版本将是:

ps | grep $PPID | cut -d" " -f4

编辑添加:paxdiablo指出ps | grep $PPID包含很多空格,它将被echo $(ps | grep $PPID)收起(因为$(…)的结果),当它不是双引号时,会被空格分割成单独的参数,然后echo输出所有由空格分隔的参数).为了解决这个问题,您可以使用tr来“挤压”重复的空格:

ps | grep $PPID | tr -s ' ' | cut -d' ' -f5

或者你可以坚持你必须开始的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读