Resultado de | grep em uma variável

0

Aqui está o meu script:

    var=  $( $line | grep -Po '.*(?=.fr)' )
    echo $var

Eu tenho um erro e ele só exibe:

 command not found

Tem alguma ideia do que está errado?

    
por researcher 27.06.2015 / 20:29

1 resposta

1

Saída de piping de um comando para uma variável ..

Um exemplo simples parecido com o seu

$ a=$(echo abc | grep -o a)

$ echo $a
a

Então, no seu caso

$ line=asdf.fr

$ a=$(echo $line | grep -Po '.*(?=.fr)')

$ echo $a
asdf

$

Sua linha falhou porque expandiu a linha $ line da variável e a executou, o que grava um erro em stderr e nada em stdout. Todos os $ com significados diferentes são um pouco engraçados. Mas se você fez (no prompt de $) $$line<ENTER> Então você começa o comando não encontrado. E se você fizer $$line>a cat a , então você não vê nada lá. Então, não está nada para fazer e não encontrar nada. Então, você precisa repetir a variável de linha, em vez de executá-la como se fosse um comando.

    
por 27.06.2015 / 21:25