Você pode verificar o código de status de mount e os executáveis mais bem escritos, com o parâmetro especial ? .
De man bash :
? Expands to the exit status of the most recently executed foreground pipeline.
Depois de executar o comando mount , a execução imediata de echo $? imprimirá o código de status do comando anterior.
# mount /dev/dvd1 /mnt
mount: no medium found on /dev/sr0
# echo $?
32
Nem todos os executáveis têm códigos de status bem definidos. No mínimo, deve sair com um código de sucesso (0) ou falha (1), mas nem sempre é o caso.
Para expandir (e corrigir) o seu script de exemplo, adicionei uma construção if aninhada para maior clareza. Não é a única maneira de testar o código de status e realizar uma ação, mas é mais fácil de ler quando se aprende.
#!/bin/bash
mount="/myfilesystem"
if grep -qs "$mount" /proc/mounts; then
echo "It's mounted."
else
echo "It's not mounted."
mount "$mount"
if [ $? -eq 0 ]; then
echo "Mount success!"
else
echo "Something went wrong with the mount..."
fi
fi
Para mais informações sobre "Sair e sair do status", consulte o Guia avançado de script de script .