LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1283|回复: 9

命令结果输出到变量的问题~

[复制链接]
发表于 2005-10-25 22:37:31 | 显示全部楼层 |阅读模式
我想将netstat -an的结果放进一个变量,

cc=$(netstat -an);

echo $cc;

结果所以的换行符都变成空格了,


  1. Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:17520 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN tcp 0 0 :::81 :::* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 :::443 :::* LISTEN tcp 0 20 ::ffff:192.168.10.233:22 ::ffff:192.168.10.22:1163 ESTABLISHED udp 0 0 127.0.0.1:1024 127.0.0.1:514 ESTABLISHED Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ] DGRAM 4970 @udevd unix 2 [ ACC ] STREAM LISTENING 7667 /tmp/.font-unix/fs7100
复制代码

可以有办法,变为这样吗?

  1. Active Internet connections (servers and established)
  2. Proto Recv-Q Send-Q Local Address               Foreign Address             State      
  3. tcp        0      0 0.0.0.0:17520               0.0.0.0:*                   LISTEN      
  4. tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      
  5. tcp        0      0 0.0.0.0:23                  0.0.0.0:*                   LISTEN      
  6. tcp        0      0 :::81                       :::*                        LISTEN      
  7. tcp        0      0 :::22                       :::*                        LISTEN      
  8. tcp        0      0 :::443                      :::*                        LISTEN      
  9. tcp        0      0 ::ffff:192.168.10.233:22    ::ffff:192.168.10.22:1163   ESTABLISHED
  10. udp        0      0 127.0.0.1:1024          127.0.0.1:514           ESTABLISHED
  11. Active UNIX domain sockets (servers and established)
  12. Proto RefCnt Flags       Type       State         I-Node Path
  13. unix  2      [ ]         DGRAM                    4970   @udevd
  14. unix  2      [ ACC ]     STREAM     LISTENING     7667   /tmp/.font-unix/fs7100
复制代码
发表于 2005-10-25 23:46:25 | 显示全部楼层
呵呵,这个不会,不知道这样是否符合你的要求
netstat -na | while read LINE
do
echo $LINE
done
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-26 00:32:12 | 显示全部楼层
我想把结果放到内存里去分析~
回复 支持 反对

使用道具 举报

发表于 2005-10-26 05:39:16 | 显示全部楼层
Post by jd_chen
我想把结果放到内存里去分析~

  1. ifs=$IFS
  2. IFS="\n"
  3. cc=$(netstat -na)
  4. echo $cc
  5. IFS=$ifs
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-26 13:22:07 | 显示全部楼层
可以讲一下isf同IFS是什么来的吗?
回复 支持 反对

使用道具 举报

发表于 2005-10-26 14:55:25 | 显示全部楼层
Post by yongjian

  1. ifs=$IFS
  2. IFS="\n"
  3. cc=$(netstat -na)
  4. echo $cc
  5. IFS=$ifs
复制代码

Right~~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-26 17:14:11 | 显示全部楼层
虽然可以用,不过有点问题~~我运行,发现有点慢,用TIME来测试一下,板主的是用了2.98秒我自己的笨脚本才用了1.54秒~~~~为什么,在内存里的变量记取比重新netstat一次还要慢???
回复 支持 反对

使用道具 举报

发表于 2005-10-26 22:24:05 | 显示全部楼层
Post by jd_chen
可以讲一下isf同IFS是什么来的吗?

IFS是bash用来定位分隔符的。一般有space, tab,\n,等一些不可见的字符。ifs只是一个临时变量存储IFS的值,因为之后IFS会被重新定义。
回复 支持 反对

使用道具 举报

发表于 2005-10-27 18:06:39 | 显示全部楼层
还不明白。。
回复 支持 反对

使用道具 举报

发表于 2005-10-28 11:06:41 | 显示全部楼层
cc=$(netstat -an)

echo "$cc"

不就行了么??
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表