![예상 사용: 열린 로그 파일 대신 화면에 메시지를 인쇄하는 방법](https://linux55.com/image/107166/%EC%98%88%EC%83%81%20%EC%82%AC%EC%9A%A9%3A%20%EC%97%B4%EB%A6%B0%20%EB%A1%9C%EA%B7%B8%20%ED%8C%8C%EC%9D%BC%20%EB%8C%80%EC%8B%A0%20%ED%99%94%EB%A9%B4%EC%97%90%20%EB%A9%94%EC%8B%9C%EC%A7%80%EB%A5%BC%20%EC%9D%B8%EC%87%84%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
나는예상되는쉘에서 처음에 로그 파일을 열어야 하고 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.45
Debian 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를 사용하고 있습니다.