작업이 실행되는 동안 (파일을 사용하지 않고) 터미널에서 직렬 작업을 제공하는 방법이 있습니까?


14

2 개 태스크가 가정 t1, t2이하와 같은 직렬 방식으로 실행될 수있다 :

t1 ; t2
# OR
t1 && t2

지금은 실행 깜빡 가정 t2하고 t1이미 실행 중입니다; t2파이프 라인에 추가 하여 t1완료 후 실행되도록 할 수 있습니까?

답변:


19

그래 넌 할수있어:

  1. + 를 눌러 현재 실행중인 작업을 일시 중단 문자일시 중지하십시오 .CtrlZ
  2. 입력 fg또는 %, 예를 들어 당신이 목록에 원하는 것을 추가하고 실행 :
    fg ; systemctl suspend # or
    % ; systemctl suspend
    fg재개 한 작업의 리턴 값을 리턴 하므로 연산자 를 예상대로 나열 &&하고 ||작업하십시오.
    fg && echo "Finished successfully!" # or
    % && echo "Finished successfully!"

man bash/ JOB CONTROL 은 일시 중단 문자에 대해 말합니다.

타이핑 중단 문자 (일반적으로 ^Z, Control- Z) 프로세스가 중지 및 반환을 제어 할 수있는 프로세스가 원인을 실행하는 동안 bash. (…) 그런 다음 사용자는 bg백그라운드에서 작업 을 계속하는 fg 명령, 포 그라운드에서 작업 을 계속 하는 명령 또는 작업을 종료하는 명령을 사용하여이 작업의 상태를 조작 할 수 kill있습니다. A ^Z는 즉시 적용되며 보류중인 출력 및 자동 완성 기능을 버리는 추가 부작용이 있습니다.

fgman bash/ SHELL BUILTIN COMMANDS에 설명되어 있습니다 .

fg [ jobspec ] 포 그라운드에서 jobspec
재개 하고 현재 작업으로 만듭니다. 경우 jobspec이 없는, 현재 작업의 쉘의 개념이 사용된다. 반환 값은 그 전경에 배치 명령, 또는 실패의 경우 실행 작업 제어가 비활성화 된 경우 또는 활성화 작업 제어를 실행할 때, 경우 jobspec는 유효한 작업 또는 지정하지 않는 jobspec 지정 작업 제어없이 시작한 일을 .

(옆에서 추가 읽기 man bash작업 제어에) :


+1이지만 또는 t3에서 잊었을 때 작동하지 않는 것은 수치 입니다. t1; t2; t3t1 && t2 && t3
JoL

@JoL 사실 그 - ^Z^Z그리고 %-;%+;t3어떤 경우에는 충분한이지만, 문제에 대한 진정한 해결책 인에서 멀리이다.
디저트

2

나는이 방법을 여기에서 보았다 : /superuser/334272/how-to-run-a-command-after-an-already-running-existing-one-finishes

먼저 Ctrl+ z를 수행 하여 실행중인 명령을 중지 (정지) 한 다음 누락 된 명령을 다음과 같이 실행하십시오 . 완료 fg && ./missed_cmd.sh되는 즉시 실행됩니다 fg.

fg(전경 명령) 온라인 일시 중단 된 작업을 가져올 것하고는 &&첫 번째 명령이 성공하면 누락 된 명령은 실행되어 있는지 확인합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.