Como usar a função definida com xargs

9

Este é o meu código

#!/bin/bash

showword() {
  echo $1
}

echo This is a sample message | xargs -d' ' -t -n1 -P2 showword

Então eu tenho uma função showword que ecoa qualquer string que você passar como um parâmetro para a função.

Então eu tenho xargs tentando chamar a função e passar uma palavra por vez para a função e executar 2 cópias da função em paralelo. O que não está funcionando é xargs não reconhece a função. Como posso conseguir o que estou tentando fazer, como posso fazer o xargs funcionar com a função showword ?

    
por GMaster 01.10.2014 / 07:57

1 resposta

15

Tente exportar a função e, em seguida, chame-a em um subnível:

showword() {
  echo $1
}

export -f showword
echo This is a sample message | xargs -d' ' -t -n1 -P2 bash -c 'showword "$@"' _
    
por 01.10.2014 / 08:13