用grep写shell的时候,发现一个很奇怪的问题,当我用命令grep搜索数据时,返回的多行数据时是按每行显示的,但是当我在shell里把这个搜索命令赋值到变量后,输出这个变量,就变成一行输出了,百度也查不到,有什么办法解决么?

[root@wangc TP]# top -bHn 1 | grep -ri telnetd
4776 root 15 0 3360 1100 892 S 0.0 0.0 0:00.31 telnetd
18133 root 16 0 4464 1100 892 S 0.0 0.0 0:00.01 telnetd
18325 root 15 0 2784 1096 892 S 0.0 0.0 0:00.01 telnetd
31130 root 15 0 2768 1104 892 S 0.0 0.0 0:00.12 telnetd
31416 root 15 0 4524 1100 892 S 0.0 0.0 0:00.08 telnetd

shell脚本:

[root@CrossCompileServer188 TP]# cat lcs_search.sh 
#! /bin/sh
echo  -e $(top -bHn 1 | grep  -ri telnetd)

执行结果:

4776 root 15 0 3360 1100 892 S 0.0 0.0 0:00.31 telnetd 18133 root 16 0 4464 1100 892 S 0.0 0.0 0:00.01 telnetd 18325 root 15 0 2784 1096 892 S 0.0 0.0 0:00.01 telnetd 31130 root 15 0 2768 1104 892 S 0.0 0.0 0:00.13 telnetd 31416 root 15 0 4524 1100 892 S 0.0 0.0 0:00.08 telnetd

解决方法:

echo -e "$(top -bHn 1 | grep -ri telnetd)"

把变量加上引号就可以了。

问题:用grep写shell的时候,发现一个很奇怪的问题,当我用命令grep搜索数据时,返回的多行数据时是按每行显示的,但是当我在shell里把这个搜索命令赋值到变量后,输出这个变量,就变成一行输出了,百度也查不到,有什么办法解决么?命令:[root@wangc TP]# top -bHn 1 | grep -ri telnetd4776 root 15 0 3360 1100 8... #!/bin/bash echo ggjob-search... pid=`ps -ef|grep -w ggjob-search|grep -v grep|grep -v ggjob-search.sh|awk '{printf $2}'` echo having kill pid:$pid kill -9 使用grep过滤掉无用信息,执行 udhcpc | grep “DNS” 使用sed抓取第二行,-n ‘2p’代表第二行,-n ‘1,3p’代表第一到三行,以回车换行符区分。执行 udhcpc | grep “DNS” | sed -n ‘2p’ 使用awk抓取第四列,$4代表第四列,以空格区分。执行 udhcpc | grep “DNS” | sed -n ‘2p’ | awk ‘{print $4}’ 最后使用tr去除字符串最后的\n,默认会包含。执行
GREP 是 GlobalRegular Expression Print 的缩写 对于标准输入的每一行,grep执行以下的操作: (1) 把下一输入行复制到模式空间中. 模式空间是只可保存一个文本行的缓冲区. (2) 对模式空间应用正则表达式. (3) 如果有匹配存在,该行从模式空间中被复制到标准输出. grep实用程序对输入的每行重复这三个操作步骤. 注意grep处理下列情况
~$ grep bash /etc/passwd root:x:0:0:root:/root:/bin/bash guest-rwf0fx:x:116:125:Guest,,,:/tmp/guest-rwf0fx:/bin/bash 但是,如果把结果保存到变量里面: ~$ result=$(grep  bash /etc/passwd) charles@xiaotao: 云原生 专有名词 container docker client docker-daemon containerd containerd-shim-runc-v2进程 runC OCI cri-o简介 linux shell 获取本机ip地址 云原生 专有名词 container docker client docker-daemon containerd containerd-shim-runc-v2进程 runC OCI cri-o简介 linux shell 获取本机ip地址