Dans Bash, de temps en temps, je tape une liste de commandes et je frappe Enter, et je ne réalise que plus tard qu'il y a une erreur avec une commande vers la fin de la liste. Je sais que si j'appuie sur Ctrl+, Ccela mettra fin à la commande en cours d'exécution et annulera le reste de la liste. Existe-t-il un moyen d'annuler le reste de la liste sans terminer la commande en cours d'exécution?
Par exemple, disons que j'ai tapé quelque chose comme
foo; bar
ou
foo && bar
où fooest une commande de longue durée qu'il est très important de ne pas interrompre, et barfait quelque chose d'irréversible et indésirable (par exemple, shutdown -h nowou rm -rf /). Pendant qu'il fooest toujours en cours d'exécution, existe-t-il un moyen général de dire au shell de laisser foofinir mais de ne pas courir baraprès? (Oui, je pourrais modifier les autorisations barafin qu'il ne soit pas exécutable, mais ce n'est pas particulièrement pratique si je souhaite utiliser barquelque chose comme rmça en attendant, et cela ne fonctionnera pas si je ne suis pas propriétaire barou s'il bars'agit d'un module intégré.)
barcommande poursome_command:^bar^some_commandavant d'être exécutée.