Bash进程id查询

时间:2016-10-05 07:05:11

标签: bash pid

我刚看到一个带有签入的代码,如果是

 for x in `ps -ef | awk '{ print $2 }'`
    do
        if [ "$x" != "PID" ];then
        ----- do something -----
        fi
    done 

我可以知道为什么我们需要检查它是否以及它在做什么?

3 个答案:

答案 0 :(得分:2)

添加该检查以跳过标题部分。您可以通过修改awk语句来跳过第一行来删除整个if语句。要找出运行的标头ps -eaf |head -n 1

  for x in $(ps -ef | awk 'NR>1{ print $2 }')
    do
          --------Do something with $x---------
    done

答案 1 :(得分:1)

如果您运行ps -ef,您会注意到它会打印标题:

     UID     PID    PPID  TTY        STIME COMMAND
[...]

检查会跳过标题。

答案 2 :(得分:1)

String text = edt_email.getText().toString(); boolean digitsOnly = TextUtils.isDigitsOnly(text); if (digitsOnly) { if (text.length() == 0) { Toast.makeText(getApplicationContext(), "field can't be empty.", Toast.LENGTH_LONG).show(); } else { Toast.makeText(getApplicationContext(), "field is int value", Toast.LENGTH_LONG).show(); } }else { Toast.makeText(getApplicationContext(), "Field is string value", Toast.LENGTH_LONG).show(); } } 输出'如下;第一行是PID,所以如果使用statetement则排除PID行;

ps -ef | awk '{ print $2 }'

你也可以不用if;

user@host:/tmp$ ps -ef | awk '{ print $2 }' | head
PID
1
2
3
5
7
8
9
10