Text-Processing

一次顯示一頁文件文本,等待 20 秒,然後自動前進

  • March 3, 2020

這個問題適用於 AIX 7

我一直在研究一個可以顯示幾頁文本的顯示器。最初,最終使用者想要一個滾動列表,我為此建構了這個:

IFS=''; cat plfeed | while read line; do echo $line; perl -e 'select(undef,undef,undef,.8)'; done

最終使用者決定他們寧願在設定的時間(例如 20 秒)內顯示一頁(24 行)輸出。我知道更多會讓我一次顯示一個頁面,但它需要鍵盤輸入,這對我的案例來說是不可接受的。

tldr;

如何自動化“更多”命令,或建構一個類似的功能,在頁面之間休眠然後自動前進?

這個相當標准awk在 AIX 上應該沒問題

awk '{if(NR>1 && NR%24==1)system("sleep 20");print}'

如評論中所述,如果要在中斷時退出,可以將system()by

{if(system("sleep 20"))exit}

但它可能不適用於您的作業系統。

#!/usr/bin/env expect 
set timeout 20
spawn -noecho man autoexpect
while 1 {
 expect {
   timeout { send " " }
   -ex "(END)" { exit }
 }
}

引用自:https://unix.stackexchange.com/questions/283721