В Bash иногда я набираю список команд и нажимаю Enter, и только позже понимаю, что есть ошибка с какой-то командой в конце списка. Я знаю, что если я нажму Ctrl+, Cэто прервет текущую команду и отменит оставшуюся часть списка. Есть ли способ отменить оставшуюся часть списка без завершения текущей запущенной команды?
Например, допустим, я набрал что-то вроде
foo; bar
или
foo && bar
где foo
это долгосрочная команда, которую очень важно не прерывать, и она bar
делает что-то необратимое и нежелательное (скажем, shutdown -h now
или rm -rf /
). Пока foo
все еще работает, есть ли общий способ сообщить оболочке, чтобы она foo
заканчивала работу, но не запускалась bar
впоследствии? (Да, я мог бы изменить разрешения для bar
того, чтобы он не выполнялся, но это не особенно удобно, если я хочу использовать bar
что-то вроде rm
этого, и не будет работать, если я не являюсь владельцем bar
или если bar
он встроен.)
bar
команду наsome_command
:^bar^some_command
перед выполнением.