Se gpg retornar um código de saída diferente de zero quando ocorrer um erro, você poderá verificar isso. Para tentar, execute o comando gpg , obtenha uma condição de erro e, em seguida, (assumindo bash ), insira echo $? . Se a saída não for 0 , o seguinte só executará rm se o comando anterior (neste caso gpg ) tiver sido bem-sucedido:
if [[ $? -eq 0 ]] ; then
rm "$1"
fi
Como alternativa, você pode verificar se o arquivo .gpg existe antes de você rm do arquivo de texto.
if [[ -f "$1.gpg" ]] ; then
rm "$1"
else
echo "$1.gpg not found, keeping the text file"
fi
Você poderia combinar as duas abordagens, certificando-se de que gpg teve sucesso e o outro arquivo existe.
Note que você deve citar qualquer uso de variáveis (veja meu código como exemplo), caso contrário, seu script se comportará de maneira estranha com nomes de arquivo contendo, por exemplo, espaços.