Иногда мы запускаем команду в терминале, а вывод слишком велик, и мы забыли положить «| меньше» в конце. Так что мне интересно, возможно ли вывести страницу, когда она слишком велика в zsh?Можно ли автоматически вывести на экран вывод в zsh?
Я пытался реализовать эту функцию с помощью питона и меньше:
#!/usr/bin/env python3
termHeight = 25
import sys
from subprocess import Popen, PIPE
p = Popen(['unbuffer'] + sys.argv[1:], stdin=PIPE, stdout=PIPE)
lines = []
for count in range(termHeight):
line = p.stdout.readline()
if not line:
break
print(line.decode('utf8'), end='')
lines += [line]
if line:
q = Popen(['less', '-Mr'], stdin=PIPE)
q.stdin.writelines(lines)
while True:
line = p.stdout.readline()
if not line:
break
q.stdin.write(line)
q.communicate()
давайте сохранить этот питон скрипт для p.py. Поэтому, когда мы запускаем «python p.py некоторые команды», например «python p.py ls --help», если на выходе больше 25 строк, этот скрипт будет использовать меньше, чтобы отображать вывод.
Проблема в том, что я не могу получить вход от пользователя. Это означает, что это решение не работает с интерактивной программой вообще.
цвет подсветки будет терять –