Usando a substituição de comando

1

O número da variável do shell contém 1 1 1 1 1 separados por tabulações.

Eu quero que ele contenha apenas o primeiro 1.

Estou tentando

number= $(echo "$number"| cut -f 3 )

e eu recebo o erro "1: comando não encontrado" e o conteúdo do número não muda.

O que estou fazendo de errado?

    
por Rio 11.04.2015 / 06:31

2 respostas

4

Supondo que number seja separado por tabulações, considere:

number= $(echo "$number"| cut -f 3 )

O resultado de echo "$number"| cut -f 3 é o terceiro elemento de numbers , que é 1 . Assim, o shell tenta executar:

number= 1

Nesse comando, a variável number é temporariamente definida como vazia e o shell tenta executar o comando 1 . Como não há nenhum comando chamado 1 , o shell emite a mensagem de erro:

bash: 1: command not found

Esta é a tentativa do shell de dizer que não encontrou nenhum comando chamado 1 .

A solução é remover o espaço:

number=$(echo "$number"| cut -f 3 )

Após a substituição do comando, isso se torna:

number=1

Isso será bem sucedido ao atribuir number para ter o valor 1 .

    
por 11.04.2015 / 06:51
2

Tente sem espaço após o sinal "=". Quero dizer, tente

number=$(echo "$number"| cut -f 3 )

em vez de

number= $(echo "$number"| cut -f 3 )
    
por 11.04.2015 / 06:36