我怎样才能在每一行之后回显换行符

时间:2013-04-25 08:20:55

标签: linux bash

我的主人是Red Hat Enterprise Linux Server release 5.4 bash 当我使用此命令:netstat -tnpl | grep "tcp" | awk '{print $4}'时,输出以下内容:

127.0.0.1:2208
0.0.0.0:871
0.0.0.0:9001
0.0.0.0:3306
0.0.0.0:111
127.0.0.1:631
127.0.0.1:25
127.0.0.1:6010
127.0.0.1:6011
127.0.0.1:2207
:::80
:::22
:::8601
::1:6010
::1:6011
:::443  

但是当使用它:ip_port=`netstat -tnpl | grep "tcp" | awk '{print $4}'` && echo $ip_port时,它会变成以下内容:

127.0.0.1:2208 0.0.0.0:871 0.0.0.0:9001 0.0.0.0:3306 0.0.0.0:111 127.0.0.1:631 127.0.0.1:25 127.0.0.1:6010 127.0.0.1:6011 127.0.0.1:2207 :::80 :::22 :::8601 ::1:6010 ::1:6011 :::443  

它变得在线。这是怎么发生的,我想要的是原始格式。

1 个答案:

答案 0 :(得分:2)

在回显时,您需要将变量括在引号中:

echo "$ip_port"

此外,您不需要同时使用grepawk,因为awk可以grep。您可以将命令简化为:

netstat -tnpl | awk '/tcp/{print $4}'