Я пытаюсь сделать несколько пустых строк прямо перед первой строкой выполнения команд в терминале и также другом после последней строки (для того, чтобы всегда даже выполнить любую команду), потому что, когда я редактирую PS1
Я только могу добавить пустую строку перед первой строкой, но она пошла, когда я выполняю некоторые команды, если это, имеют длинный результат, т.е.: выполнение update
какая причина игнорируют добавленную пустую строку.
некоторая вещь как это (пока выполнение обновления):
Когда я максимизировал Окно терминала, у меня может быть эта последняя пустая строка, затем я хочу это также в нормальном окне. Пустая строка перед первой строкой не важна, но имеющий последний пустой очень важно для меня. Как я могу обработать результат выполнения команд? если я достигаю этого затем я способный иметь последнюю пустую строку.пожалуйста!
Я сохраняю предыдущий ответ для меня и добавляю еще один в зависимости от нашего обсуждения.
Это не идеальное решение, но я думаю, что мы можем улучшить его вместе:
#!/bin/bash
new_line(){
echo -e "";
}
n=0 # line counter
H=$(stty size | cut -d" " -f1) # this is height of current terminal
# uncomment next line if you want to add empty line after (height - 1) lines
# H=$((H - 1))
new_line
eval $@ |
while IFS= read -r line
do
echo $line;
n=$(($n+1));
if !((n % H)); then # every H lines it is true
new_line
fi;
done
new_line
Создают этот сценарий с любым именем, в моем случае, который это test.sh
, сделайте его исполняемым файлом.
Теперь выполняет этот сценарий и соединяют каналом команду, которую Вы хотите как аргументы
$ ./test.sh sudo apt-get update
Обновление
Окончательная версия сценария, который работал на @KasiyA, но не работу для меня:
#!/bin/bash
eval $@ |
while IFS= read -r line
do
echo $line
done
Если Вы хотите точно попытку пустой строки это:
Открытый терминал и создает это две функции, затем выполняется trap
:
$ preexec () { echo -e ""; }
$ preexec_invoke_exec () {
[ -n "$COMP_LINE" ] && return # do nothing if completing
preexec
}
$ trap 'preexec_invoke_exec' DEBUG
Теперь попытка выполнить любую команду и видеть, что результаты
уверены, что help trap
говорит:
, Если SIGNAL_SPEC является ОТЛАДКОЙ, АРГУМЕНТ выполняется прежде каждая простая команда.
, Если это работает, как Вы желаете, добавьте, что это функционирует, и trap
к Вашему .bashrc
Также можно хотеть измениться preexec
функция на это preexec () { echo "-------------------------------"; }
, потому что это - более выдающиеся взгляды.
Для получения дополнительной информации читавший это:
Лучшее решение: я нашел очень интересную команду stty. От человека stty: stty - изменение и настройки строки терминала печати.
В tty1 я выполнил это: sudo stty rows 20
. Теперь мой экран tty ограничен 20 строками, который допускает 20 строк на экране. Это работает со склонным sudo - получают установку libreoffice-s и любую другую команду.
Теперь, это, кажется, не работает с терминалом гнома или xterm, но прямо сейчас я работаю над решением. Вероятно, необходимо изменить что-то в .bashrc файле.
А минималистическое решение проблемы состояло бы в том, чтобы использовать меньше или больше или стр., Например, если я моделирую установку libreoffice,
sudo apt-get install libreoffice -s | less
Тот способ, которым у Вас есть последняя строка, замененная: и все еще быть в состоянии выполнить команду. Единственный пакет ничьей - то, что необходимо нажать Enter, для пропуска к следующей странице в случае pg или следующей строке в случае меньше/больше.
Другое решение - это для использования head
или tail
команда. Это будет работать хорошо, если Вы не будете заботиться о целом выводе, но только сначала и конечная часть его. Как имя предполагает, они позволяют Вам видеть или вершину (глава) вывода или конец (хвост) вывода. Например,
sudo apt-get install libreoffice -s | head -n20;
, Который даст Вам первый 20 строк вывода (значение по умолчанию равняется 10, от того, что я узнал). Стать последним 20 того же самого строк с хвостом:
sudo склонный - получают установку libreoffice-s | хвост-n20;
проблема с этими решениями, тем не менее, состоит в том, что при выполнении некоторой интерактивной команды с долгим выводом это будет, вероятно, препятствовать тому, чтобы Вы взаимодействовали с той командой, поэтому иметь это в виду.