우리는 거의 모든 작업을 수행할 수 있는 다양한 클라이언트 bash 스크립트를 발견했습니다. 그 기능이 무엇인지는 상관하지 않지만 .sh 스크립트가 완료되었는지 또는 몇 분 정도 걸릴 수 있는 작업을 아직 수행 중인지 쉽게 확인할 수 있는 방법이 필요합니다. 스크립트는 수정, 이름 변경 또는 이동할 수 없습니다. 또한 스크립트가 출력하는 모든 것을 stdout으로 출력할 수 있어야 하므로 > null도 가질 수 없습니다.
이 문제에 대한 다양한 게시물을 찾았지만 해결 방법이 없습니다. 스크립트가 절대 멈추지 않도록 "Hello World"와 for do 루프를 에코하는 간단한 스크립트를 만들려고 했지만 test.sh
예, 스크립트가 계속 실행 중이라고 알려주는 작동하는 솔루션을 찾을 수 없습니다. 솔루션은 단일 라이닝과 같이 가능한 한 단순해야 합니다. 나는 몇 가지 간단한 것들을 시도했다.
if $? -eq 0 then script finished successfully
그러나 $?
일부 숫자는 항상 반환되지만 실행이 완료되었는지는 알 수 없습니다.
pgrep -l ./test.sh or pgrep -x ./test.sh
다른 사람들을 위한 솔루션으로 게시되었지만 나에게는 효과가 없습니다. 출력을 인쇄하지 않고 명령 프롬프트로 이동합니다.
내가 만든 스크립트 test.sh
도 프로세스로 표시되지 않습니다. 그냥 디스플레이인 것 같습니다 -bash
. Unix/Linux에서 작업하는 데 필요합니다.
스크립트가 계속 실행 중이고 아직 명령 프롬프트로 돌아가지 않았는지 확인하려면 어떻게 해야 합니까?
업데이트: 어쩌면 이것이 내 문제를 더 잘 설명할 수도 있습니다. SSH 터미널 세션을 열고 완료하는 데 2분 또는 20분 정도 걸릴 수 있는 스크립트를 실행하면 명령 프롬프트가 다시 표시되면 완료되었음을 알 수 있습니다. 따라서 프롬프트가 나타날 때까지 다음 명령을 입력하지 마십시오. 단순한.
하지만 인간의 도움 없이 어떻게 같은 일을 할 수 있습니까? Linux에 어떻게 알릴 수 있나요?
- Windows PC에서 원격 PC로 SSH 세션을 연 다음
- 실행
./script.sh
하고 whoami
2)가 성공적으로 완료된 경우에만 명령을 실행하시겠습니까?
별도의 스크립트를 작성 및 실행하거나 2단계에서 스크립트를 변경할 필요 없이 이 모든 작업을 수행할 수 있습니까? 즉, 명령 프롬프트에서만 가능합니다. 그렇다면 여전히 여러 Linux 명령을 사용할 수 있습니까? ;
아니면 가능하다면 저장하지 않고 명령줄에 스크립트를 작성한 다음 이 명령을 실행할 수 있습니까(ENTER 키를 누름)? 이것을 설명하기가 조금 어렵지만 이제는 더 이해가 되기를 바랍니다.