Existe uma maneira de passar argumentos via pipe no bash?

1

Existe alguma maneira de passar argumentos via pipe no bash?

algo como:

echo value1 value2 | mkdir -p ./$1/$2

A linha acima criaria os diretórios ./value1/value2

Se isso não for possível, eu aceito sugestões.

Qualquer ajuda é apreciada.

    
por guest9586 11.12.2014 / 18:06

2 respostas

2

Os seguintes trabalhos no Unbuntu:

echo -e value1\nvalue2|echo mkdir -p ./'line'/'line'

Não posso garantir que todas as implementações bash leiam as linhas na ordem da esquerda para a direita.

Alternativamente:

echo value1 value2|( read p1 p2; echo mkdir -p ./$p1/$p2 )

Isso funcionará com todas as implementações bash , mas precisará de elaboração se o valor contiver espaços em branco.

(usei echo mkdir para mostrar o efeito.)

    
por 11.12.2014 / 18:24
1

Que tal

echo v1 v2 | awk '{print "./"$1"/"$2}' | xargs mkdir -p
    
por 11.12.2014 / 18:16