Tendo um problema com um script de shell contando caracteres

11

Estou tentando aprender o básico e me deparei com um problema com meu script contando os caracteres da entrada de um usuário. Aqui está o meu roteiro, alguém pode apontar onde estou errado por favor?

#!/bin/bash

echo "Enter a word!"    
read INPUT_STRING   
len= echo $INPUT_STRING | wc -c 
echo "Your character length is " $len
exit
    
por Jack Slater 18.09.2014 / 14:28

2 respostas

12

todo começo é difícil:

#!/bin/bash
read INPUT
echo $INPUT
len=$(echo -n "$INPUT" | LC_ALL=C.UTF-8 wc -m)
echo $len

especificamente, não deve haver um espaço em torno de = e um comando separado precisa ser colocado dentro de $(...) . Além disso, talvez você queira gravar suas variáveis entre aspas " usando essa sintaxe "${INPUT}" , isso garante que a variável não seja concatenada acidentalmente com o que segue e possa conter caracteres especiais (por exemplo, novas linhas \n ).

    
por 18.09.2014 / 14:32
8

Eu acho que preferencialmente seria usar

len=${#INPUT_STRING}

caso contrário, o caractere de fim de linha adicionado por eco será contado também. A menos que seja o que você quer.

    
por 18.09.2014 / 14:48