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 .