Saída de tubulação de um comando para outro padrão de entrada do comando [duplicado]

2

Gostaria de fazer algo semelhante ao seguinte:

which someapplciation | cd outputfrompreviouscommand

O comando which fornece um diretório e eu gostaria de poder fazer com que a saída seja meu diretório de trabalho atual sem usar uma linguagem de programação, ou seja, awk , bash , perl , etc. o comando pipe.

Para dar mais um exemplo:

which vi

fornece a saída

/some/dir

Gostaria que meu diretório de trabalho fosse movido para esse diretório, o que posso testar usando o comando pwd , que deve ter a saída correspondente a /some/dir .

    
por Avlaxis 11.06.2014 / 00:37

1 resposta

6

Você não pode usar um pipe se o segundo comando que você está executando não ler de sua entrada padrão. No entanto, você pode fazer algo como

cd $(which someapplication)

ou, desde que você precise de um nome de diretório para cd e não um nome de executável:

cd $(dirname $(which someapplication))

O operador $(...) shell executa o comando entre parênteses e substitui sua saída na linha de comando.

    
por 11.06.2014 / 01:20