목표는 p2가 다른 프로세스에 의해 데이터를 공급받기 때문에 파이프 p2에서 STDOUT으로 데이터를 복사하는 백그라운드 프로세스를 시작하는 것입니다.
명령이 잘못된 것 같아요. 그러나 Enter 키를 누른 직후 Konsole 응용 프로그램 창이 사라지면 안 됩니다. 오류 메시지가 나타나거나 충돌 보고서 창 등을 제출해야 합니다.
왜 이런 일이 발생합니까? 버그인가요?
원하는 것을 얻으려면 명령을 어떻게 수정해야 합니까? (나중에 STDOUT이 아닌 다른 곳에 데이터를 복사하고 싶을 수도 있습니다.)
답변1
나는 이것이 실수라고 말하고 싶습니다. 어떤 버전의 bash를 실행하고 있나요? 명령줄이 올바르지 않지만 셸이 충돌해서는 안 됩니다. 다음과 같은 출력을 보고 싶습니다.
$ CP P2 &2 & [1]24800 [2]24801 $ bash: 2: 명령을 찾을 수 없습니다 cp: 'p2' 뒤에 개체 파일 피연산자가 없습니다. 자세한 내용을 보려면 "cp --help"를 시도하십시오. [1]- 1번 출구 cp -i p2 [2]+ 127번 출구 2
'&2'에는 의미가 없습니다. 글쎄, 그것은 당신이 생각하는 것을 의미하지 않습니다. 백그라운드에서 이전 명령("cp")을 실행한 다음(인수 부족으로 인해 실패함 - 대상 없음) 백그라운드에서 "2"라는 명령도 실행하려고 시도합니다.
이는 다음을 실행하는 것과 동일합니다.
CP P2 & 2 &
"exit"를 실행하는 "2"라는 별칭, 스크립트 또는 셸 함수가 없습니까? 그렇지 않다면 쉘은 확실히 종료되어서는 안 됩니다.
뭐하고 지내? Named Pipe p2의 내용을 표시하고 백그라운드에서 실행하려고 하시나요? 그렇다면 다음을 시도해 보십시오.
cat p2 &