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.