มีคำสั่งเพจเจอร์ Unix เลื่อนโดยอัตโนมัติเลื่อนเวลา?


10

ฉันต้องการดูผลลัพธ์ของคำสั่งขนาดใหญ่ที่ชะลอตัวลงเช่นสไลด์โชว์ที่มีเช่นอัตโนมัติความล่าช้า 500ms ระหว่างการเลื่อนแต่ละครั้ง วิธีที่ง่ายที่สุดในการบรรลุเป้าหมายนี้คืออะไร?

คำตอบ:


8

วิธีง่ายๆในการใช้bash:

function scroll
{
    while read -r ; do echo "$REPLY" ; sleep ${1:-0.5} ; done
}

การใช้

long_command | scroll [delay]

delay0.5เป็นตัวเลือกและค่าเริ่มต้น

ออกด้วยCtrl+C


1
ผมไม่ทราบว่าทำไมแก้ไขของฉันได้รับการปฏิเสธ แต่จะเตือนว่าecho /** ในการส่งออกของคุณ long_command (เช่นcatไฟล์) จะติดและน้ำท่วมในเซสชั่ terminal "$REPLY"ของคุณถ้าคุณไม่ใส่เครื่องหมายคำพูดคู่บน
林果皞

1
@ 林果皞อนุมัติและลบคำเตือนขอบคุณ ฉันควรจะเพิ่มคำพูดในตอนแรก
cYrus

... ฉันเพิ่มคำเตือนเพียงเพราะระบบไม่อนุญาตให้แก้ไขเพียง 2 ตัวอักษร
林果皞

4

ถ้าคุณสามารถมีชีวิตอยู่ด้วยความละเอียด 1s tail -n +0 -f -s <seconds>คุณสามารถทำ


2
ผลลัพธ์จากlong_commandอาจเกิดขึ้นในเวลาน้อยกว่าหนึ่งวินาทีดังนั้นจึงไม่มีประเด็นในการทำโพลเพื่อความสมบูรณ์ของมันทุก<interval>ๆ อันและไม่ได้ผลสำหรับฉัน
cYrus

2

คุณสามารถใช้vimกับการทำแผนที่ที่เหมาะสมเพื่อให้บรรลุสิ่งนี้:

vim -c 'map <S-f20> L:redraw<cr>:sleep 500m<cr><C-d><S-f20>' -c 'execute "normal \<S-f20>"' -

Ctrl-dเลื่อนครึ่งหน้าในแต่ละครั้งแทนที่ด้วย10jเพื่อเลื่อนครั้งละ 10 บรรทัด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.