Você pode obter o tamanho da string da variável usando ${#variable}
. E você deve usar -gt
em vez de >
na expressão [
]
.
#!/bin/bash -
pass=$(cat < "$1") || exit
if [ "${#pass}" -gt 32 ]; then
echo >&2 "Error: Password length invalid"
exit 1
else
echo "okay"
fi
Isso conta o número de caracteres (interpretados na codificação da localidade atual), não bytes, no arquivo passado como primeiro argumento, exceto os caracteres de nova linha à direita, portanto, para um arquivo contendo uma linha de texto, que fornece o número de caracteres nessa linha.