Como encontrar o comprimento da string usando o comando echo e wc

0

Estou tentando o seguinte:

Len='echo $str | wc -c'

Mas estou recebendo esta saída:

'Echo $str|wc -c'

O que estou fazendo de errado?

    
por Nandini Nandu 31.01.2017 / 10:27

3 respostas

2

Se você preferir usar as aspas para substituição de comandos, então você tem que usar os backticks: ', não a aspa simples:', por exemplo. :

Len='echo $str | wc -c'

Como os outros mencionaram, você também pode usar a sintaxe len=$(...) .

    
por 31.01.2017 / 11:12
1
Len='echo $str | wc -c'

Isso definirá a variável Len como a string echo $str | wc -c (não produzirá nada).

O shell não executará nenhum dos comandos da string, já que não é uma substituição de comando.

Para obter a saída de um comando, use o comando de substituição, $(...) :

Len=$( echo "$str" | wc -c )

Neste caso, também é possível usar

Len="${#str}"

que é muito mais rápido.

A expansão do parâmetro ${#parameter} expandirá para o comprimento do valor de parameter .

    
por 31.01.2017 / 10:31
0

Você precisa atribuir à variável Len a saída do seu comando:

Len=$(echo "$str" | wc -c)
    
por 31.01.2017 / 10:30

Tags