wall은 프롬프트로 돌아가기 전에 모든 사람이 무언가를 입력하도록 강요합니다.

wall은 프롬프트로 돌아가기 전에 모든 사람이 무언가를 입력하도록 강요합니다.

이 질문에 대한 답을 찾을 수 없습니다. 아마도 질문을 어떻게 표현해야 할지 모르기 때문일 것입니다.

wall매일 단말기를 열어달라는 메시지를 방송합니다 . 이 시점에서 최종 사용자의 메시지는 Enter 키를 누를 때까지 사라집니다. 벽 명령은

wall -n wall message

더 나은 설명이 없기 때문에 사용자 터미널에서 다음과 같이 표시됩니다.

여기에 이미지 설명을 입력하세요.

보시다시피 그냥 멈춰있습니다. ENTER를 누르거나 다른 작업을 수행하면 프롬프트로 돌아갑니다. 사실 프롬프트처럼 보이지는 않아도 명령을 실행할 수 있거나, Enter 키를 누르는 대신 위쪽 화살표를 누르면 이전 명령을 볼 수 있는 등의 작업이 가능하기 때문에 프롬프트입니다.

그것은 중요하지 않습니다. 그것은 나를 짜증나게 할 뿐입니다. 나는 이것이 의도적으로 의도된 것일 수도 있다고 생각했는데, 그것이 단지 메시지라는 사실에도 불구하고 사용자가 메시지를 보았다는 것을 인정하도록 강요하는 것입니다.것 같다이건 힌트도 아닌 듯 목적에 어긋나는 것 같습니다.

답변1

현재 겪고 있는 문제는 콘솔을 공유하는 백그라운드 프로세스의 결과일 뿐입니다. 콘솔에 액세스할 수 있는 모든 프로세스는 동일한 작업을 수행할 수 있습니다. 출력은 셸이 아닌 다른 프로세스에서 발생하기 때문에 텍스트가 거기에 있는지 전혀 알 수 없습니다! 편집기를 사용하는 경우에도 이 텍스트를 받게 됩니다.

통제된 환경에서 이 콘텐츠를 보려면 다음을 시도해 보세요.

$ (sleep 5; echo -e "\n\nWhere did this come from?") &
[1] 18898
$ ping localhost
PING localhost(localhost (::1)) 56 data bytes
64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.039 ms
64 bytes from localhost (::1): icmp_seq=2 ttl=64 time=0.027 ms


Where did this come from?
64 bytes from localhost (::1): icmp_seq=3 ttl=64 time=0.028 ms
64 bytes from localhost (::1): icmp_seq=4 ttl=64 time=0.033 ms
64 bytes from localhost (::1): icmp_seq=5 ttl=64 time=0.028 ms
^C
--- localhost ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4099ms
rtt min/avg/max/mdev = 0.027/0.031/0.039/0.004 ms
[1]+  Done                    ( sleep 5; echo -e "\n\nWhere did this come from?" )
$

분명히 ping"이것은 어디에서 오는가?"라는 인쇄가 없습니다. 이는 백그라운드 프로세스에서 나오는 것입니다.

관련 정보