首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在for循环中使用grep

在for循环中使用grep
EN

Stack Overflow用户
提问于 2013-07-22 22:23:16
回答 1查看 203关注 0票数 1

我正在尝试用grep编写一个for循环。当grep返回值时,我希望显示消息"running“。如果没有返回值,则显示"available“。

我认为我的if语句有问题,但我找不到任何东西。

任何建议都将不胜感激。

代码语言:javascript
运行
AI代码解释
复制
    #!/bin/sh
    #JWR1.0, REL1.10

    echo "Content-type: text/html"
    echo ""

    chk_port = 'ps -ef | grep "port $i -"'

    for (( i=1; i<=5; i++ ))
    do
            if [[ $chk_port ]]; then
                    echo "Running - $i<br>"
            else
                    echo "Available - $i<br>"
            fi
    done

    echo "<br>"

    # For debugging


    ps -ef | grep "port 1 -"

示例输出:

代码语言:javascript
运行
AI代码解释
复制
    Available - 1
    Available - 2
    Available - 3
    Available - 4
    Available - 5

    apache 7706 7700 0 15:07 ? 00:00:00 grep port 1 -
EN

回答 1

Stack Overflow用户

发布于 2013-07-22 22:31:52

我猜你的问题是,在ps的输出中没有 port $i,但是你的脚本认为它存在。

问题是,命令grep port $i -也在ps -ef的输出中,这在您的调试输出中已经很清楚了。

为了避免它,有一个诀窍,只要做

代码语言:javascript
运行
AI代码解释
复制
chk_port=$(ps -ef | grep "[p]ort $i -")

例如:

代码语言:javascript
运行
AI代码解释
复制
kent$  ps -ef|grep nothing  
kent     10226  4752  0 00:36 pts/2    00:00:00 grep --color=auto nothing

kent$  ps -ef|grep [n]othing
zsh: no matches found: [n]othing

您还可以检查grep (grep -q)的返回码,以确定是否找到了该模式。如果未找到匹配项,则grep返回1,否则返回0。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17798489

复制
相关文章
shell中for循环grep正则统计指定关键字
需求是统计某个业务的访问个数日志服务器上的目录结构是如下,搜索最近7天的指定关键字数据,并排重统计个数:
唯一Chat
2019/11/27
8770
Linux中grep工具的使用
grep(Globel Search Regular Expression and Printing out the line)全面搜索正则表达式并把行打印出来,是一种强大的文本搜索工具,是一个对行进行操作的搜索工作,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix 的 grep 家族包括 grep 、egrep 、 fgrep 。egrep 表示扩展的 grep ,相比 grep 支持更多的元字符。grep -E 相当于 egrep 。fgrep 是 fast grep ,不支持元字符,但是搜索速度更快。grep 过滤的结果被送到屏幕,不影响原文件内容。
谢公子
2022/01/19
1.4K0
Linux中grep工具的使用
9.2 grep(中)
grep用法 grep -n 'root' /etc/passwd grep -nv 'nologin' /etc/passwd grep '[0-9]'/etc/inittab grep -v '[0-9]'/etc/inittab grep -v '^#' inittab grep -v '^#' /etc/inittab|grep -v '^$' grep '^[^a-zA-Z]' test.txt grep命令 '[0-9]' grep '[0-9]' passwd 表示数字,从0到9的数字 这
运维小白
2018/02/06
9470
如何使用Grep
Grep是一个命令行实用程序,可以使用常见的正则表达式语法搜索和过滤文本。它无处不在,动词“to grep”已经成为“搜索”的同义词。它grep是一个有用的工具,用于在选择的文件中查找所有出现的搜索词,过滤日志文件或流,或作为一部分脚本或命令链。
独木桥先生
2018/08/20
2.5K0
在nodejs中事件循环分析
在上一篇文章在chromev8中的JavaScript事件循环分析中分析到,在chrome中的js引擎是通过执行栈和事件队列的形式来完成js的异步操作。然而在node中,事件循环表现出的状态与浏览器中大致相同。不同的是node中有一套自己的模型。node中事件循环的实现是依靠的libuv引擎。我们知道node选择chrome v8引擎作为js解释器,v8引擎将js代码分析后去调用对应的node api,而这些api最后则由libuv引擎驱动,执行对应的任务,并把不同的事件放在不同的队列中等待主线程执行。 因此实际上node中的事件循环存在于libuv引擎中。
Yerik
2022/04/11
4.1K0
linux中grep命令
grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
狼啸风云
2019/11/03
9.1K0
grep命令的使用
grep是UNIX和LINUX中使用最广泛的命令之一。grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。grep支持基本正则表达式,也支持其扩展集。grep有三种变形,即:
全栈程序员站长
2022/07/15
6830
Grep 使用多种样式
grep是一个强大的命令行工具,它允许你在一个或者多个输入文件中匹配一个正则表达式,并且将每一个匹配结果输出到标准输出。
雪梦科技
2020/05/19
6780
python如何使用for循环_Python 中for循环的应用
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170074.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
7.1K0
在循环内使用闭包(Closures)
闭包的本质是一个内部函数访问其作用域之外的变量。闭包可以用于实现诸如 私有变量 和 创建工厂函数之类的东西。
前端迷
2018/10/22
1.3K0
100 - 在Django模板中使用循环
如何在Django模板中使用循环指令,请举例说明 # myfor.py from django.shortcuts import render class MyClass: name = 'Bill' def myFor(request): values = {'values': [{'name':'item1'}, MyClass(), {'name':'Mike'}]} return render(request, 'for.html', values) # urls.py fr
ruochen
2021/06/28
1.4K0
100 - 在Django模板中使用循环
在 Linux 中如何按名称和 Grep 内容查找文件?
如果您使用该find命令递归搜索某些文件,然后将结果通过管道传递给该grep命令,那么您实际上将解析文件路径/名称,而不是它们的内容。
网络技术联盟站
2022/05/11
6.7K0
在 Linux 中如何按名称和 Grep 内容查找文件?
python中如何使用for循环_python循环5次
for循环可以把字符串里面的元素都依次取出来,自动赋值给变量i然后再执行循环体内的代码块
全栈程序员站长
2022/09/22
4.9K0
python中如何使用for循环_python循环5次
linux之grep使用技巧
grep基本命令 Linux之grep命令 显示不以#开头的行 > grep ^[^#] rumenz.txt 显示#开头的行 > grep ^# rumenz.txt 从单个文件查找指定字符串 > grep "rumenz" 1.txt 从多个文件查找指定字符串 > grep "rumenz" *.html 忽略大小写, 并显示行号 > grep -in "rumenz" 1.txt 显示查找到的总行数 > grep -c "rumenz" 1.txt 查找目录下所有文件,并只输出含有该文本
入门笔记
2022/06/02
8480
linux之grep使用技巧
原文链接:https://rumenz.com/rumenbiji/linux-grep-skills.html
入门笔记
2021/10/14
2.5K0
linux之grep使用技巧
原文链接:https://rumenz.com/rumenbiji/linux-grep-skills.html
入门笔记
2022/05/18
1.4K0
Grep命令使用方法
Linux grep命令用于查找文件里符合条件的字符串;也可以用于查找内容包含指定的范本样式的文件。它能使用正则表达式搜索,用于在文件中搜索指定的字符串模式,列出含有匹配模式子符串的文件名,并输出含有该字符串的文本行。
用户8418197
2021/09/05
6500
grep命令的基本介绍 grep命令的使用方法
如今的社会已经进入了大数据时代,庞大的数据使得很多的人望而却步。然而有时却必须要在大数据之中找到特定的数据,这让很多的程序员感到头疼。通过这款软件中的grep命令,就可以轻松实现对指定文本的有关内容的查找。那么究竟什么是grep命令?这个命令又该如何使用?下面就来为大家介绍一下。
用户8739990
2021/07/16
1.7K0
grep命令的基本介绍 grep命令的使用方法
matlab如何使用循环语句_matlab中循环语句怎么写
clc clear a=1; m=3; for i=1:m %理解此处的m不是向量,是循环时的某一个固定值 b(i)=a*i %得到的b值保留前一个循环中计算的值。是一个随着i变化的向量,loop1时向量中有1个元素;loop2时有2个元素,分别是loop1中值和loop2中的值。这种情况下,不会覆盖loop1中参数。 c=a*i %得到循环某个值的具体值。是一个元素,loop2会覆盖loop1中元素 d(3)=a*i %d(3)表示其中包含3个元素,若不够则用0填。固定为一个有3个元素的向量,元素不够是用0填,会覆盖loop1中元素。 end
全栈程序员站长
2022/09/27
6.2K0
点击加载更多

相似问题

使用grep的UNIX grep循环

11

在while循环中使用grep

25

在grep函数R中使用for循环

11

在多个文件上使用grep循环

35

在嵌套for循环中使用grep

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文