[ "$str" ] || { echo "This is my usage statement"; exit 1; }
Isso usa test
, denotado por [...]
. Em sua forma mais simples, como usado aqui, ele apenas testa se a string não está vazia (retornando sucesso / true) ou vazia (retornando falha / false). O operador de controle, ||
, executa a instrução que segue somente se a instrução anterior retornou false.
Presumi que, se o usuário não inserisse um str
não vazio, você desejaria sair com um código de falha depois de emitir a instrução de uso. Caso contrário, remova o exit 1
.
Se você tiver algo mais complexo para fazer, use uma instrução if
mais formal:
if [ "$str" ]
then
echo "This is my usage statement"
# do other stuff....
exit 1
fi
O acima deve funcionar em qualquer shell POSIX incluindo dash
( /bin/sh
) e bash
.
Outros testes
Aqui estão dois testes relacionados (ambos exigem bash
):
[ "${str//[^[:digit:]]/}" ] || { echo "You entered no numbers"; exit 1; }
E
[ "${str//[^[:alpha:]]/}" ] || { echo "You entered no letters"; exit 1; }