【问题标题】:Groovy process not working with linux shell (grep and awk and ps)Groovy 进程不适用于 linux shell(grep 和 awk 和 ps)
【发布时间】:2013-05-24 18:04:59
【问题描述】:
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) [所有它都会休眠一段时间]。不太确定该怎么做。这是我最好的猜测^^

结果:

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


-sh-3.2$

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

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

(所有*都是数字)

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

【问题讨论】:

  • 为了让您了解最新情况,我还尝试了 awk '{println $2}' ,但它与 groovy 语法不匹配。但我不知道如何更改它以与 Groovy 一起玩。 (Groovy 相对较新)
  • 你想让你的脚本知道它的进程 ID 是什么吗?最好明确说明您希望脚本实现什么。
  • 是的,我想知道 sleep.sh 的 pid

标签: linux groovy process grep ps


【解决方案1】:

shell -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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-07
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 2021-05-15
    • 2012-04-26
    相关资源
    最近更新 更多