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 скрипт оболочки, который я сделал (sleep.sh) [все, что он делает, это спит в течение определенного периода времени]. Не совсем уверен, как это сделать. Это было мое лучшее предположение ^^
результат:
-sh-3.2$ ./callGroovy.sh testSleep.groovy
-sh-3.2$
ничего не распечатывает и ничего мне не дает (callGroovy - это сценарий оболочки, который я использую для вызова моего сценария groovy). Если я запускаю переданные по конвейеру команды, они все еще работают, кроме awk.
-sh-3.2$ ps -ef | grep "sleep.sh" | grep -v "grep"
wasadmin ***** ***** 0 **:** pts/1 **:**:** /bin/bash ./sleep.sh
(где все * числа)
когда я пробую сценарий только с grep и ps, он также не дает мне этого вывода. какие-либо предложения? ..PS Также я пробовал с кавычками и без них в заводном скрипте. Не думал, что это будет иметь значение, но стоит попробовать