Groovy 进程无法与 linux shell 一起使用(grep、awk 和 ps)

2024-01-04

Process proc1 ='sh -c ps -ef'.execute();
Process proc2 ='sh -c grep sleep.sh '.execute();
Process proc3 ='sh -c grep -v grep '.execute();
Process proc4 ='sh -c awk sleep.sh '.execute();

Process all = proc1 | proc2 | proc3 | proc4;

// I tried this too and this didnt work

//println( [ 'sh', '-c', 'ps -ef | grep "sleep.sh" | grep -v "grep" |     awk "sleep.groovy" ' ].execute().text )

//also tried without the awk

println all.text;

好吧,我想做的是 ps 我制作的 shell 脚本 (sleep.sh) [它所做的就是休眠一段时间]。不太确定该怎么做。这是我最好的猜测^^

result:

-sh-3.2$ ./callGroovy.sh testSleep.groovy


-sh-3.2$

不打印任何东西也不给我任何东西(callGroovy 是一个 shell 脚本,我用来调用我的 groovy 脚本) 如果我运行管道命令,除了 awk 之外,它们仍然可以工作 我认为我做错了 awk 这是其余的管道

-sh-3.2$ ps -ef | grep "sleep.sh" | grep -v "grep"
wasadmin ***** *****  0 **:** pts/1    **:**:** /bin/bash ./sleep.sh  

(其中所有 * 均为数字)

当我尝试只使用 grep 和 ps 的脚本时,它也没有给我这个输出。有什么建议么? ..PS 我还尝试在常规脚本中使用或不使用引号。不认为这会有所作为,但值得一试


贝壳-c选项仅需要一个参数。从命令行尝试此操作,您也会看到它失败:

sh -c ps -ef | sh -c grep sleep.sh | sh -c grep -v grep | sh -c awk sleep.sh

它需要引号才能正常工作:

sh -c "ps -ef" | sh -c "grep sleep.sh" | sh -c "grep -v grep" | sh -c "awk sleep.sh"

您可以通过从字符串列表而不是字符串开始来正确引用命令:proc1 = ['sh', '-c', 'ps -ef']。在本例中,您正在 groovy 中进行过滤,因此简单的解决方案就是不通过 shell 调用命令。尝试这个:

Process proc1 ='ps -ef'.execute()
Process proc2 ='grep sleep.sh '.execute()
Process proc3 ='grep -v grep '.execute()
Process proc4 ='awk sleep.sh '.execute()

Process all = proc1 | proc2 | proc3 | proc4

println all.text

最后,如果事情不能正常工作,使用以下命令读取 stderr 流会很有帮助

println all.err.text
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Groovy 进程无法与 linux shell 一起使用(grep、awk 和 ps) 的相关文章

  • 抑制 makefile 中命令调用的回显?

    我为一个作业编写了一个程序 该程序应该将其输出打印到标准输出 分配规范需要创建一个 Makefile 当调用它时make run gt outputFile应该运行该程序并将输出写入一个文件 该文件的 SHA1 指纹与规范中给出的指纹相同
  • 如何通过替换为空页映射来取消映射 mmap 文件

    Linux 用户空间有没有办法用空页面 映射自 dev null 或者可能是一个空页面 重复映射到从文件映射的页面的顶部 对于上下文 我想找到这个 JDK bug 的修复 https bugs openjdk java net browse
  • 如何在递归调用函数时阻止 bash 创建子 shell

    这是一个计算阶乘的简单 shell 函数 bin bash function factorial if 1 lt 2 then echo 1 else echo 1 factorial 1 1 fi factorial 1 但我发现这个脚本
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • 从 csv 文件中删除特定列,保持输出上的相同结构[重复]

    这个问题在这里已经有答案了 我想删除第 3 列并在输出文件中保留相同的结构 输入文件 12 10 10 10 10 1 12 23 1 45 6 7 11 2 33 45 1 2 1 2 34 5 6 I tried awk F 3 fil
  • groovy中bigdecimal的默认比例

    groovy 中 BigDecimal 的默认小数位数是多少 和四舍五入 因此 当尝试进行计算时 def x 10 0 30 0 0 3333333333 def y 20 0 30 0 0 6666666667 基于此 我可以假设它使用比
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • 修改String字段的getter的返回值

    假设我的应用程序中有一些类似于域类的类 其中包含一些 Long Double Date 和 String 字段 这些类使用一些公共字段和一些公共方法扩展了基类 每当我访问 String 类字段 通过 getter 时 我想对返回的值进行一些
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • 如何在数组中存储包含双引号的命令参数?

    我有一个 Bash 脚本 它生成 存储和修改数组中的值 这些值稍后用作命令的参数 对于 MCVE 我想到了任意命令bash c echo 0 0 echo 1 1 这解释了我的问题 我将用两个参数调用我的命令 option1 without
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific
  • Process.Start 阻塞

    我正在调用 Process Start 但它会阻止当前线程 pInfo new ProcessStartInfo C Windows notepad exe Start process mProcess new Process mProce
  • PHP 从命令行启动 gui 程序,但 apache 不启动

    首先 我阅读了有类似问题的人的一些帖子 但所有答案都没有超出导出 DISPLAY 0 0 和 xauth cookies 这是我的问题 提前感谢您的宝贵时间 我开发了一个小库 它使用 OpenGL 和 GLSL 渲染货架 过去几天我将它包装
  • Groovy 元编程 - 将静态方法添加到 Object.metaClass

    我遇到了无法解决的 Groovy 元编程问题 将静态方法 foo 添加到类 FooBar 时 FooBar foo 按预期工作 FooBar metaClass static foo println hello FooBar foo 但是
  • Groovy - JsonSlurper 解析 JSON 文件

    我有一个类似于下面的 JSON 文档 我正在尝试在 Groovy 中解析它 基本上对于每所学校 学校信息 我想抓住SCHOOL COUNTRY和其他领域 我正在尝试下面的代码 但它没有返回我需要的内容 对于列出的每所学校 1 000 所 我
  • 即使进程确实存在,为什么 Process.WaitForExit 也会抛出“无进程”异常?

    我有一个包含以下代码的 Windows 服务 public static void ExtractTextInner string source string destination ProcessStartInfo startInfo n
  • iptables通过注释删除特定规则

    我需要删除一些具有相同评论的规则 例如 我有带有 comment test it 的规则 所以我可以像这样获得它们的列表 sudo iptables t nat L grep test it 但是我怎样才能删除所有带有注释 测试它 的 PR
  • 仅使用 Git grep 的文件名

    我只想查看文本中包含特定单词的不同文件 current directory git grep word 显示文件中具有匹配单词的每一行 所以我尝试了这个 current directory git grep word files with

随机推荐

  • 警报管理器的替代品 - Android

    说真的 执行应用程序未运行时发送通知等简单任务的解决方案是什么 使用具有自定义操作系统的设备 例如小米 设置闹钟后 它会在短时间内 例如几分钟 起作用 但不会在 例如几小时 长时间内起作用 尽管它在某些设备上以及应用程序运行时工作得很好 我
  • 使用 KnockoutJS 和简单类继承时丢失对 self 的引用

    我在用John Resig 的 简单 JavaScript 继承 http ejohn org blog simple javascript inheritance 创建一个可以继承的类 我还使用 KnockoutJS 来计算可观察量 问题
  • Java使用反射调用类的main()方法

    我需要使用反射从另一个主方法调用 Java 类的主方法 必须使用反射 以消除被调用的主类的编译时依赖 直接的方法不会产生影响 因为它只识别 公共 和 非静态 方法 建议 不应该比调用任何其他函数更复杂 public static void
  • 如何在mvc 3中使用jquery互相填充级联下拉列表?

    asp net mvc3如何互相加载级联dropdownlist 我能怎么做 我一直在利用http geekswithblogs net ranganh archive 2011 06 14 cascading dropdownlist i
  • Docker 中的小写镜像名称

    为什么 Docker 只允许镜像名称使用小写字母 为什么不用大写字母 在容器提交期间 docker commit OPTIONS CONTAINER REPOSITORY TAG 这是一个设计选择 技术上 允许混合大小写名称可能不会有任何实
  • React、Sass,从 .scss 文件导入 img 时出现错误

    我想设置一个简单的背景图像 并覆盖 sass 文件中的反应组件 但我收到此错误 Module not found You attempted to import assets hero jpg which falls outside of
  • symfony2.1 捆绑版本混乱,针对 symfony 和 sonata admin / knp 菜单捆绑

    我想在新项目中使用 symfony2 1 我尝试用composer安装symfony2 但是存在多个错误 问题 因此我对每个问题也有疑问粗体字体样式 有时我不知道我是否以正确的方式做事 我想使用稳定版本 所以我选择了 2 1 0 版本而不是
  • 如何在 ReactJs 中加载 WebGL 顶点和片段着色器?

    让我先提出我的问题 然后分享相关细节 有没有一种方法可以在 ReactJS 中使用 加载 修复解析错误 WebGL 着色器 有可用的装载机吗 经过几个小时的努力 在谷歌上搜索了一种能够使用着色器文件 即顶点和片段着色器 的方法 我还没有找到
  • 稍后可以在领域中更改主键吗?

    我在本地设置了一个临时主键并将对象保存到领域 稍后服务器为该对象分配一个唯一键 然后我想更新该对象的主键 那么是否可以为对象重新分配主键呢 当我们为对象重新分配主键时会发生什么 它会用旧的主键保存对象吗 可以将主键的值更改为最高 Realm
  • 将文本限制为 angular.js 中的特定语言字符

    我正在使用 angular js 构建一个表单 我的表格看起来像
  • 在本机反应中打开地图/谷歌地图

    我正在尝试打开谷歌地图或我的地图react native应用 当我在 iPhone 模拟器上运行该应用程序时 我收到此错误 Don t know how to open URI 我做错了什么 My code openGps var url
  • MongoDB 中的changeStream 和tailable 游标有什么区别

    我试图确定变更流之间的区别 https docs mongodb com manual changeStreams https docs mongodb com manual changeStreams https docs mongodb
  • 如何修复 RN 突然无法找到本地模块(无法解析模块)?

    我遇到了一个奇怪的情况 突然我的 RN 应用程序无法加载任何场景 该应用程序已经运行良好数周了 我没有移动任何文件 失败 error bundling UnableToResolveError Unable to resolve modul
  • 嵌入式系统的时间戳

    我想为嵌入式系统 运行 ArchLinux 的 Raspberry Pi A 上的传感器测量添加时间戳 我发现了time from time h但它给了我 第二个 分辨率 我至少需要 毫秒 系统将运行几个小时 我不担心长时间的漂移 我怎样才
  • 什么是多态 lambda?

    lambda 匿名函数 的概念对我来说非常清楚 我知道类方面的多态性 运行时 动态分派用于根据实例的最派生类型调用适当的方法 但 lambda 到底如何才能是多态的呢 我是另一位试图了解更多有关函数式编程的 Java 程序员 您会发现我在下
  • Python HTML 抓取

    这并不是真正的抓取 我只是想在网页中找到该类具有特定值的 URL 例如 a class myClass href url 7df028f508c4685ddf65987a0bd6f22e 我想获取href值 关于如何做到这一点有什么想法吗
  • 当 var_dump 存在时中止 git 预提交钩子

    我正在尝试 但惨败 创建一个 git 预提交钩子 用于检查修改后的文件中是否存在 var dump 如果找到则退出 我遇到的问题是它似乎总是中止提交 这是我的预提交文件的内容 VAR git diff grep w var dump if
  • 使用Python脚本将数据发布到Web服务器

    我正在使用 Python 2 7 3 我正在尝试将数据发布到我的本地网络服务器 我发布的数据是我的树莓派的温度读数 我知道网址是正确的 因为如果我使用邮递员 chrome 插件 数据会成功发布 并且我会收到返回消息 在邮递员中 我只能使用表
  • .net onpaint 垂直同步

    我正在尝试使用 winforms 和 gdi 实现一些动画 但我在控件内得到了很多撕裂移动的精灵 托管 net中有没有办法让重写的Control OnPaint方法等待监视器的垂直回溯 您已经使用双缓冲了吗 如果不是 我怀疑这会消除撕裂 并
  • Groovy 进程无法与 linux shell 一起使用(grep、awk 和 ps)

    Process proc1 sh c ps ef execute Process proc2 sh c grep sleep sh execute Process proc3 sh c grep v grep execute Process