LinuxSir.cn,穿越时空的Linuxsir!

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

菜鸟问题。如何才能做到

[复制链接]
发表于 2006-1-5 11:27:00 | 显示全部楼层 |阅读模式
[root@7100SMB:/u]ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0  1999 ?        00:00:00 init [5]
root         2     1  0  1999 ?        00:00:00 [migration/0]
root         3     1  0  1999 ?        00:00:00 [ksoftirqd/0]
root         4     1  0  1999 ?        00:00:00 [migration/1]
root         5     1  0  1999 ?        00:00:00 [ksoftirqd/1]
root         6     1  0  1999 ?        00:00:00 [events/0]
root         7     1  0  1999 ?        00:00:00 [events/1]
root         8     6  0  1999 ?        00:00:00 [khelper]
root         9     6  0  1999 ?        00:00:00 [kblockd/0]
root        10     6  0  1999 ?        00:00:00 [kblockd/1]
root        11     1  0  1999 ?        00:00:00 [khubd]
例如上面。
我如何每次取一次pid
第一行不取
UID        PID  PPID  C STIME TTY          TIME CMD
比如设一变量I 第一次取1,第二次取2以此类推。每取到一次执行一个动作。
如果不是数字。字符也可以这样依次取。
shell 应该怎么写? THANKS
发表于 2006-1-5 12:05:38 | 显示全部楼层
把输出写入文件3.txt
函数fun里定义动作,用$1,2,3...取列
#!/bin/bash
fun(){
        echo $2
}
while read line
do
        fun $line
done<3.txt
回复 支持 反对

使用道具 举报

发表于 2006-1-5 22:49:02 | 显示全部楼层
去首行

  1. [No.1598 22:49:19 ~]$ echo -e "line 1\nline 2\nline 3"
  2. line 1
  3. line 2
  4. line 3
  5. [No.1599 22:50:02 ~]$ echo -e "line 1\nline 2\nline 3" | tail +2
  6. line 2
  7. line 3
  8. [No.1600 22:50:08 ~]$ echo -e "line 1\nline 2\nline 3" | tail +3
  9. line 3
  10. [No.1601 22:50:11 ~]$
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-1-6 00:37:45 | 显示全部楼层

  1. ps -ef|awk 'NR!=1{print $2}'|while read pid;do
  2. #echo $pid
  3. #do something
  4. done
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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