Você deve substituir "failed"
por "\"failed\""
. Deve ser:
while read status name date; do
case "$status" in
'aborted')
echo -1
;;
"\"failed\"")
echo -1
;;
'succeeded')
echo 0
;;
*) echo 0
esac
exit 0
done<st.txt
Considere também o uso de read with -r
.
Há também uma maneira mais fácil de fazer o que você quer:
if [ "$(cut -d ' ' -f1 st.txt)" = "\"failed\"" ]
then
printf -- "-1\n"
fi