Bash에서 나머지 명령 목록을 취소하는 방법은 무엇입니까?

Bash에서 나머지 명령 목록을 취소하는 방법은 무엇입니까?

Bash에서는 가끔 입력합니다.명령 목록를 클릭했지만 Enter나중에 목록 끝 부분에 있는 일부 명령에 오류가 있음을 깨달았습니다. Ctrl+를 누르면 C현재 실행 중인 명령이 종료되고 목록의 나머지 부분이 취소된다는 것을 알고 있습니다. 목록의 나머지 부분을 취소할 수 있는 방법이 있나요?아니요현재 실행 중인 명령을 종료하시겠습니까?

예를 들어 내가 다음과 같이 입력한다고 가정해 보겠습니다.

foo; bar

또는

foo && bar

이는 foo장기 실행 명령이므로 중단하지 않는 것이 매우 중요하며 bar되돌릴 수 없고 원치 않는 작업(예: shutdown -h now또는 rm -rf /)을 수행합니다. 쉘이 계속 실행되는 동안 foo완료되도록 하고 foo나중에는 실행하지 않도록 지시하는 일반적인 방법이 있습니까? bar(네, 권한을 변경해서 bar실행 불가능하게 만들 수도 있지만, 그런 걸 동시에 사용하고 싶으면 bar별로 편리하지 않고, 없거나 내장되어 있으면 안되죠. 작동하지 않습니다.)rmbarbar

답변1

CtrlZ프로그램을 백그라운드 프로세스로 이동 하는 것이 효과가 있다는 것을 알았습니다 .

foo && bar

foo; bar원하는 방식으로 제어 기능을 제공하지 않는다는 의견을 지적한 @Arkadiusz Drabczyk에게 감사드립니다 .

그 다음에:

^Z

[1]+  Stopped                 foo

이 명령은 첫 번째 작업만 중지하고

fg %1

그러면 foo작업이 전면으로 이동하여 작업이 완료되고 종료됩니다.

추신: 이는 파일에 쓰는 두 개의 스크립트로 확인할 수 있습니다. 첫 번째는 다시 넣을 시간을 주기 위해 몇 초 동안 잠을 잔다.

CtrlZ왜 실행 중인 명령만 처리하고 나머지는 무시하는지 이해가 되지 않습니다 . 나는 당신을 알고 싶습니다.

관련 정보