linux脚本中的ps等命令问题
答案:3 悬赏:0
解决时间 2021-01-15 20:23
- 提问者网友:欺烟
- 2021-01-15 03:00
linux脚本中的ps等命令问题
最佳答案
- 二级知识专家网友:大漠
- 2021-01-15 03:38
ps -eaf |grep tomcat |grep -v grep >/dev/null 2>&1分为4段
1、ps -eaf 查看当前进程,-e 显示所有进程,a显示终端上的所有进程,包括其他用户的进程,f 全格式。
2、显示的结果通过管道“|”传给第二段 grep tomcat,查找tomcat进程。
3、同样查找的结果传给第三段 grep -v grep,-v 不显示匹配的行,因为用grep查询tomcat的时候也算一个进程,而ps的时候该进程信息中也包含了tomcat,例如:
root 2317 0.0 0.0 5980 744 pts/4 S+ 15:00 0:00 grep tomcat所以用grep -v grep把这条过滤掉。
4、第四段 >/dev/null 2&>1,将显示结果(默认是正确输出,即1)重定向到/dev/null中去,2代表错误输出,也和1一样。Linux中0代表输入stdin,1代表输出stdout,2代表错误输出stderror。
每运行一个命令,该命令都会有一个返回值给shell,你可以在终端中试试ls,然后echo $?查看返回值,肯定是0,如果ls 一个不存在的文件,再看,肯定不是0。以此判断上一条命令是否执行成功。
if [ $? -eq 0 ]; then判断上一条命令的返回值是否等于(-eq) 0,即是否运行成功。
1、ps -eaf 查看当前进程,-e 显示所有进程,a显示终端上的所有进程,包括其他用户的进程,f 全格式。
2、显示的结果通过管道“|”传给第二段 grep tomcat,查找tomcat进程。
3、同样查找的结果传给第三段 grep -v grep,-v 不显示匹配的行,因为用grep查询tomcat的时候也算一个进程,而ps的时候该进程信息中也包含了tomcat,例如:
root 2317 0.0 0.0 5980 744 pts/4 S+ 15:00 0:00 grep tomcat所以用grep -v grep把这条过滤掉。
4、第四段 >/dev/null 2&>1,将显示结果(默认是正确输出,即1)重定向到/dev/null中去,2代表错误输出,也和1一样。Linux中0代表输入stdin,1代表输出stdout,2代表错误输出stderror。
每运行一个命令,该命令都会有一个返回值给shell,你可以在终端中试试ls,然后echo $?查看返回值,肯定是0,如果ls 一个不存在的文件,再看,肯定不是0。以此判断上一条命令是否执行成功。
if [ $? -eq 0 ]; then判断上一条命令的返回值是否等于(-eq) 0,即是否运行成功。
全部回答
- 1楼网友:狂恋
- 2021-01-15 05:42
grep -v是反向排除
if [ $? -eq 0 ]是如果上一步执行成功了,即搜索到东西了
if [ $? -eq 0 ]是如果上一步执行成功了,即搜索到东西了
- 2楼网友:神也偏爱
- 2021-01-15 04:31
-v, --invert-matchselect non-matching lines
grep -v 选择的是不匹配的行(反转查找)。
$? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
比较字符:-eq -- 等于 。
grep -v 选择的是不匹配的行(反转查找)。
$? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
比较字符:-eq -- 等于 。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息