Acontece que eu estava faltando o "então" após a instrução if.
deve ser
if [[ "${whoa}" != "0" ]]
then
do something
fi
Sentindo-se meio idiota agora:
Por que meu contional é sempre verdadeiro?
Eu tentei
# this should let me know what's not a directory or
# symbolic link.
whoa='find ${MUSICDIR} ! -type l ! -type d | wc -l'
# I would expect if it's 0 (meaning nothing was found) that
# one of these statements would evaluate to false, but so far
# it's always evaluating to true
if [[ "${whoa}" != "0" ]]
do something
fi
if [[ ${whoa} -gt 0 ]]
do something
fi
O que estou perdendo?
Os backticks recolhem stdout do subprocesso e whoa
contém o texto, não o errorlevel. Você pode usar $?
para obter o nível de erro do último comando.
Mas se você estiver usando, encontre o recurso exec
para fazer algo.
Além disso, você pode usar o tipo f
para o arquivo, para localizar um arquivo regular.
Tags command-line zsh