첫 번째 명령을 일시 중단하더라도 (Ctrl-z) 명령을 하나씩 실행합니다.
bash에서 세미콜론으로 구분하여 명령을 하나씩 실행할 수 있음을 알고 있습니다.
$ command1; command2
또는 성공한 command2
경우에만 실행하려면 다음을 command1
사용하십시오 &&
.
$ command1 && command2
이것은 작동하지만을 command1
사용하여 일시 중지 Ctrl-z
하면 첫 번째 경우에는 command2
즉시 실행 되고 두 번째 경우에는 전혀 실행하지 않습니다. 명령을 순서대로 실행하지만 여전히 첫 번째 명령을 일시 중단 할 수 있지만 다시 시작하고 (사용하여 fg
) 완료 될 때까지 두 번째 명령을 실행할 수 없습니까? 이 작업을 대화식으로 수행하고 싶기 때문에 가능한 한 간단한 입력을 선호합니다. 아니면 어딘가에 옵션을 설정해야 할 수도 있습니다.
그건 그렇고, 무엇에 대한 적절한 용어는 무엇 Ctrl-z
입니까?
다음을 수행해야합니다.
(command1; command2)
추가 된 괄호에 유의하십시오.
Bash에서 작업을 백그라운드에 배치하면 (CTRL + Z 또는 & 사용) 작업이 완료 될 때까지 기다리지 않고 종료 코드 0 (성공)을 제공합니다. 당신이 관찰 한만큼 man
페이지에 기록되어 있습니다.
논리적 "AND", &&의 동작은 왼쪽에서 오른쪽으로 테스트한다는 것입니다. 각 부분이 성공해야하므로 첫 번째 부분이 성공하지 못하면 두 번째 부분이 실행되지 않습니다. 따라서 &&를 사용하면 명령 중 하나가 실패 할 때까지 왼쪽에서 오른쪽으로 명령을 실행합니다. 성공의 정의는 0의 종료 코드 ($?)입니다.
이를 논리 "OR", ||와 대조하여 명령 중 하나가 작동 할 때까지 왼쪽에서 오른쪽으로 실행합니다 .
@NPE가 제공하는 서브 쉘 솔루션에 대한 설명은 다음 man
페이지 에서도 찾을 수 있습니다 .
'a; 형식의 복합 명령 및 명령 시퀀스 b; c '는 프로세스 중단이 시도 될 때 정상적으로 처리되지 않습니다. 프로세스가 중지되면 쉘은 즉시 다음 명령을 순서대로 실행합니다. 괄호 사이에 일련의 명령을 배치하여 하나의 단위로 중지 할 수있는 서브 쉘로 강제하는 것으로 충분합니다.
CTRL + Z에 대한 적절한 용어 는 페이지 에서 다시 일시 중지 문자입니다 man
.
프로세스가 실행되는 동안 일시 중지 문자 (일반적으로 ^ Z, Control-Z)를 입력하면 해당 프로세스가 중지되고 제어가 bash에 반환됩니다.
( man
페이지를 너무 많이 인용해서 미안 하지만 실제로는 친구이며 읽을 가치가 있습니다)
보면 stty -a
다음과 같은 것을 볼 수 있습니다.
susp = ^Z;
따라서이를 변경할 수 있으므로 "일반적으로"라는 문구가 사용됩니다. 하지만 그렇게하지 마십시오. 모든 사람을 혼란스럽게 할 것입니다. 터미널 드라이버는 Bash에 의해 트랩 된 SIGTSTP 신호를 발생시킵니다.
'developer tip' 카테고리의 다른 글
루프 내에서 함수를 만들지 마십시오. (0) | 2020.11.15 |
---|---|
리눅스 / proc / loadavg (0) | 2020.11.15 |
ggplot에서 패싯 순서 수정 (0) | 2020.11.15 |
Android Studio : 무기한 실행되는 백그라운드 작업 (0) | 2020.11.15 |
ASP.NET Core의 토큰 기반 인증 (새로 고침) (0) | 2020.11.15 |