nohup sleep에서는 명령 지우기가 작동하지 않는 이유는 무엇입니까?

nohup sleep에서는 명령 지우기가 작동하지 않는 이유는 무엇입니까?

다음은 2개의 코드 예제입니다. 둘 다 nohupbash 문자열의 코드 입니다 . 첫 번째 사람은 일을 했고, 두 번째 사람은 일을 하지 않았습니다. 나는 이유를 물었다.

sudo apt-get purge zip unzip
nohup bash -c " sleep 20s; apt-get install zip unzip; " & 

위의 명령은 백그라운드에서 실행되어 이러한 소프트웨어로 설치됩니다( zipstdin " "을 실행하여 확인했습니다.


nohup bash -c " sleep 20s; clear; "

이 명령은 포그라운드에서 실행되지만 tty를 지우지는 않습니다. 왜 그런 겁니까? 현재 세션의 화면을 지우려면 어떻게 해야 합니까? 도움이 될 수 있는 명령으로 실행할 수 있는 매개변수/실행/스크립트가 있습니까?

답변1

프로그램 clear이 작성 중입니다.표준 출력,지금 바로리디렉션명령 으로 nohup. 따라서 이것은 터미널에 영향을 미치지 않습니다.

에서 (의 clear) 출력을 볼 수 있습니다 nohup.out.

다음을 수행할 수 있습니다.

nohup bash -c " sleep 20s; clear >/dev/tty; "

출력을 장치 clear로 리디렉션하도록 셸에 지시합니다 . 명령을 사용하여 터미널을 식별 tty할 수 있습니다.tty장비당신이 사용하는 것, 예를 들어

    nohup bash -c " sleep 20s; clear > $(tty); "

그러나 대부분의 경우 둘 다 작동합니다.

으로부터 경고를 받을 수 있습니다 nohup. 이 경고는 무음으로 설정될 수 있습니다.

    nohup bash -c " sleep 20s; clear > $(tty); " 2>/dev/null

관련 정보