예상 사용: 열린 로그 파일 대신 화면에 메시지를 인쇄하는 방법

예상 사용: 열린 로그 파일 대신 화면에 메시지를 인쇄하는 방법

나는예상되는쉘에서 처음에 로그 파일을 열어야 하고 for 루프 내에서 특정 조건을 확인하고 이러한 조건이 충족되면 로그 파일 대신 화면에 메시지를 인쇄하고 싶습니다.

노트:

send_log, send_error및 을 send_user사용해 보았지만 puts그 중 어느 것도 나에게 적합하지 않았습니다. 로그 파일 대신 화면에 무언가를 인쇄하려고 할 때마다 log_file을 닫았다가 열어야 합니까?

코드 예:

log_file -a something.log
.
.
.
for loop { 
log something to the log file
if certain condition met {
 then log to a screen only
}
log_file

답변1

puts내 로그 파일이 무시되는 것 같습니다( expect version 5.45Debian 8):

$ > logtest; expect -c 'log_file logtest; send_user "foo\n"; puts bar' 
foo
bar
$ cat logtest
foo

답변2

회신하다

"puts가 내 로그 파일을 무시하는 것 같습니다(예상 버전 5.45 Debian 8):"

Linux 셸에서 수행하는 명령은 작동하지만, 예상 셸로 이동하여 로그 파일을 연 다음 puts를 입력하면 화면과 로그 파일에 인쇄하려는 내용이 인쇄됩니다.

나는 또한 버전 5.45를 사용하고 있습니다.

관련 정보