2014-12-04 2 views
0

Я хочу сделать некоторые простые вещи, какИспользование трубы | в oozie действия

echo 'my text' | grep my 

в действии oozie оболочки.

oozie похоже не может обработать | в качестве аргумента.

Был ли кто-нибудь в состоянии получить |, работающий внутри oozie?

+0

Это порождает ошибку? Если да, то что она говорит? –

+0

он выполняет первую часть перед | и завершает работу. в некоторых комбинациях | и скрипты, это говорит о незаконных аргументах. – bhomass

ответ

0

С данным примером вы можете работать вокруг трубы, как этого

grep my <<< 'my text' 

§ Useless use of cat

+0

не ищет помощи, как переписать сценарии оболочки. Я пробовал разные способы обойти трубку самостоятельно. oozie просто не может принять ничего, кроме простой команды, за которой следуют аргументы. – bhomass

0

я посмотрел глубоко в oozie. Он автоматически создает оболочку для выполнения команд, которые вы вводите, и, по-видимому, оболочка не может обрабатывать ничего, кроме простой команды с аргументами.

1

Вы можете получить вокруг ограниченных функций оболочки Oozie с оберточной Shell в рабочем процессе, как это:

<action name="shell-node-pipe"> 
    <shell xmlns="uri:oozie:shell-action:0.2"> 
    <job-tracker>${jobTracker}</job-tracker> 
    <name-node>${nameNode}</name-node> 
    <exec>bash</exec> 
    <argument>-c</argument> 
    <argument>/bin/echo my test | grep my</argument> 
    <capture-output /> 
    </shell> 
    <ok to="end" /> 
    <error to="fail" /> 
</action> 

Таким образом, «-с» вариант Баш используется для вызова команды, которая содержит трубу ,