关于执行rsh后while不能循环的问题

今天在写代码中遇到一个问题如下:
数据文件a.data的内容如下:    111 aaa    bad   172.16.101.10
                                               222 dsd    klsd   172.16.101.11 .........
现在程序如下:
   cat a.data | while read id str1 str2 ip
       do
            rsh ${ip} ps -ef | grep nmc | grep -v grep
            .....
       done
但结果只执行了一次,即只执行了IP为172.16.101.10,后来到网上查资料,的确用while时执行rsh会对循环有影响,后改进如下:
    for param in $(cat a.data|nawk '{print $4}')
       do
             rsh ${ip} ps -ef | grep nmc | grep -v grep
            .....
        done
经过改进,程序是可以进行多次循环,while中出现的问题也没有了,但是如果我在循环体中要用到其它的字段值却取不到,因为for中只能取一个变量,nawk中只取了$4.后来在网上查到一个好方法如下:
    exec 3<a.data
   while read id str1 str2 ip<&3
       do
             rsh ${ip} ps -ef | grep nmc | grep -v grep
            .....
        done
这样就可以把所有的字段读出来,而且在while的程序体内可以用rsh来执行.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值