Tee 대안 (사용자 입력 누락)


0

우리는 타사 대화 형 명령 줄 도구를 사용 tee하고 있으며 사용자가 수행 한 작업을 로깅하는 데 사용합니다.

이 도구는 사용자가 수행하려는 작업을 요청하고 사용자가 무언가를 선택하고 하위 메뉴를 계속 진행하거나 작업이 실행되는 방식으로 작동합니다.

최근에 (우리는 그러한 로그를 확인해야 할 때) 사용자 입력이 없다는 것을 깨달았습니다. 대안이 있습니까? 그것을 달성하는 방법은 무엇입니까?

내가 도구를 시뮬레이션하려고 할 때 :

$ cat r.sh
read -p "Enter some text: " text
echo $text

echo -n "Enter another text: "
read text2
echo $text2

나는 테스트했고 이것은 출력이다

$ ./r.sh | tee run.log
Enter some text: abc
abc
Enter another text: def
def

$ cat run.log
abc
Enter another text: def

이상적으로는 사용자가 본 것과 똑같은 것을 원합니다.

해결책:

누군가 그것을 필요로한다면

script -c ./r.sh script.log

예상대로 작동 했고이 타사 도구로 테스트했습니다.

답변:


3

script이것을 위해 사용할 수 있습니다 . 중첩 된 tty를 만들고 그 안에 발생하는 모든 것을 기록합니다.

또한 지정 --timing=…하면 전체 화면 대화 형 프로그램 (텍스트 편집기 등)의 재생 가능한 "비디오"를 생성 할 수도 있습니다.


(완전성을 위해 – https://asciinema.org/에asciinema 레코드를 자동으로 게시하는 호스팅 된 서비스 인 또 다른 유사한 도구 가 있습니다 . 데모 및 자습서를 만드는 데 유용합니다.)


나는 대본을 가지고 있었다. 내가없는 것을 발견 한 것은 "대화식으로"기록을 끝내는 것이 었습니다. Ctrl D는 대화식으로 수행하지만 스크립트의 일부로 끝내는 것이 무엇인지 확실하지 않습니다.
— Journeyman Geek

script중첩 된 쉘 (또는 다른 프로그램)을 시작하고 해당 쉘이나 프로그램이 종료되면 기록이 종료됩니다. 그것이 전부입니다.
— grawity

아, 출구가 작동합니까?
— Journeyman Geek

스크립트는 (내가 지정한 것을 테스트하고 확인을 보인다) 이상을 테스트하기 위해 약간의 시간이 필요합니다, 내가 원하는 것처럼 보이지만, 지금은 ... 옵션입니다
— Betlista
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.