Eu sei que isso set -e
diz ao bash para sair do script em caso de erro. O problema é que eu tenho que resolver o erro, então deletar todos os passos anteriores do script enquanto mantenho todas as variáveis antes de executá-lo novamente para continuar. Existe uma maneira de fazer o script simplesmente esperar pela entrada do usuário read -p "Continue? "
em caso de erro? Se não, existe algo similar? Eu quero que o script pare em caso de erro, então continue novamente quando eu estiver pronto.
relate perguntas
-
Subtraindo a mesma coluna entre duas linhas no awk
-
Um script que imprime as linhas de um arquivo com seu comprimento [fechado]
-
exportar variáveis env programaticamente, via stdout do comando [duplicado]
-
Dividir por delimitador e concatenar problema de string
-
MySQL Select com função IN () com array bash
não, na verdade não, e eu vou argumentar que isso é um efeito do design. Em qualquer linguagem de programação sensata, você praticamente nunca encontrará um
porque isso basicamente nunca faz sentido:
O segundo caso é mais fácil (não fácil) de lidar em linguagens com escopos e tempos de vida claros, com uma noção de cadeias de chamadas. Uma exceção (ou como quer que seja chamada na linguagem individual) pode ser levantada, e se isso não for tratado, os objetos alocados no escopo da função de chamada são destruídos, e a exceção é borbulhada mais acima na cadeia de chamadas até que seja tratada ou alcance a função de inicialização, em cujo caso o programa pode simplesmente sair com um erro.
Um shell como o bash definitivamente não tem nenhum dos requisitos para que isso funcione.
Já que você parece estar esperando seu script de shell em um ou mais pontos, parece que você está no primeiro caso, de qualquer forma.
Então, faça o que você precisa fazer em qualquer linguagem de programação: envolva suas invocações que podem ser decepcionantes em um código manipulador que verifica o comportamento da invocação e faz a coisa certa quando ela falha.