Na verdade, existem dois problemas diferentes, e ambos contribuem para o resultado de nenhum eco.
Aqui estão os detalhes:
Má comparação
Você escreveu:
alphabeticSorted=$(echo $line | grep -o . | sort)
if [ "$line" == "$alphabeticSorted" ]
-
grep -o
coloca cada correspondência por conta própria por linha -
.
corresponde a um único caractere individual - a linha original tem caracteres horizontalmente
- , mas o
grep -o
coloca os caracteres "verticalmente" - para que o% original
$line
nunca seja igual à linha pós-grep
Por exemplo, no prompt de comando, você pode testar isso:
$ line="abc"
Agora veja o que o original $line
contém:
$ echo "$line"
abc
Veja agora como o grep -o
o altera, e isso é basicamente seu $alphabeticSorted
$echo "$line" | grep -o .
a
b
c
Então lembre-se que você escreveu isto:
if [ "$line" == "$alphabeticSorted" ]
Então, o que o Bash realmente está testando é:
abc
igual a
a
b
c
Bem, como você pode ver, não é a mesma coisa, então sua declaração if
nunca seria verdadeira mesmo que o seu $line
original fosse perfeitamente alfabético.
Eu recomendo strongmente que ambos tenham a mesma orientação, horizontal ou vertical. Vamos fazer as duas horizontais, para que você possa testar no Bash
$ line2=$( echo $line | grep -o . | sort | tr -d '\n'
$ echo $line2
abc
- adicionamos o comando
tr
, o-d
para excluir algo e o algo, sendo novas linhas\n
- assim, o
$line2
é "horizontal", assim como o$line1
Então, no seu código original, basta modificá-lo para que
alphabeticSorted=$(echo $line | grep -o . | sort | tr -d '\n')
if [ "$line" == "$alphabeticSorted" ]
Agora deve ser uma comparação mais razoável.
Variável incorreta
Mas mesmo que você corrija isso, há um segundo problema com o script postado, que é isso no corpo do código:
count=$((count + 1))
Mas você não está se referindo a $count
, você disse que escreveu:
echo "$newCount"
Porque não há $newCount
definido, é claro que, ao chamar isso, não há valor, não é nada, então você não recebe nada. O que você provavelmente queria era:
echo "$count"
Então, com esses dois bugs endereçados, tanto quanto eu posso dizer pelo código fornecido, agora deve funcionar.