Uma função de shell deve ser capaz de return
de um valor que você gosta:
checktype() {
if [ ! -f "$1" ] ; then
echo 'Irregular file'
return 1
fi
if [ ! -r "$1" ]; then
echo 'Unreadable file'
return 2
fi
return 0
}
$ checktype /dev/stdin ; echo $?
Irregular file
1
Além disso, test
é um nome ruim para um alias ou uma função, já que é um utilitário padrão (interno).
I realize that alias is an awful choice, but currently it's being required by a professor.
Ok, isso muda um pouco as coisas. Minha sugestão seria mostrar ao prof uma solução mais adequada e explicar por que o simples não funciona.
Mas, caso isso não funcione e você realmente precise usar um alias, considere que o valor de retorno é, na verdade, apenas o valor de retorno do último comando que foi executado. Você deve ser capaz de criar algo que retorne um valor que você quer ...
(Se é lição de casa, não acho que seria justo dar uma solução completa imediatamente. Spoilers abaixo.)
Hint: You already used a command that returns an arbitrary value.