Как вставить вкладки перед строками вывода из выполненной команды

Просто быстрый вопрос. Можно ли вкладывать вывод на Ubuntu 16.04 LTS? Я создал два изображения ниже, чтобы попытаться проиллюстрировать, что я имею в виду под этим.

img1

img2

16
задан 18 July 2016 в 11:40

3 ответа

Вы могли сделать что-то вроде этого - с дескрипторами файлов:

  1. сохраняют дескриптор текущей производительности, таким образом, мы можем восстановить его позже

    exec 3>&1
    
  2. , перенаправляют поток вывода к замена процесса , который вставляет вкладку - например

    exec 1> >(paste /dev/null -)
    

От этой точки, любой процесс, который пишет в стандартный вывод, будет иметь тот вывод 'фильтрованным' через эти paste команда для вставки вкладок в запуске.

  1. , Когда Вы сделаны, можно возобновить нормальное поведение путем восстановления сохраненного дескриптора файла и закрытия временного

    exec 1>&3 3>&-
    
0
ответ дан 18 July 2016 в 11:40

Я понимаю, что этот ответ не оптимален для Вас, но Вы могли сделать функцию Bash с простым именем _ (или что-либо еще, что еще не используется), который выполняет команду, которую это получает как аргументы и отступы весь ее вывод с вкладкой.

Пример:

$ _ lsb_release -a
        No LSB modules are available.
        Distributor ID: Ubuntu
        Description:    Ubuntu 16.04 LTS
        Release:    16.04
        Codename:   xenial

Код этой функции только был бы этим:

_(){ sed "s/^/\t/" <($*); }

Можно добавить его к Вашему ~/.bashrc файл так, чтобы это было доступно на всех сессиях Bash Вашего пользователя путем выполнения:

echo '_(){ sed "s/^/\t/" <($*); }' >> ~/.bashrc

Если Вы хотите сделать это доступным для всех пользователей, добавьте его к /etc/bash.bashrc вместо этого (требует прав администратора):

echo '_(){ sed "s/^/\t/" <($*); }' | sudo tee -a /etc/bash.bashrc

Кроме того, Вы могли также создать файл сценария как /usr/local/bin/_ со следующим содержанием для достижения того же без Bash функционирует и для всех пользователей:

#!/bin/bash
sed "s/^/\t/" <($*)

Необходимо сделать исполняемый файл сценария после сохранения использования файла

sudo chmod +x /usr/local/bin/_
9
ответ дан 18 July 2016 в 11:40

С echo а именно, у Вас может быть он, интерпретируют Escape обратной косой черты как \t ( позиция табуляции ) с эти -e переключатель:

echo -e "\tHello World"

, Но это едва было бы выполнимо (или вероятно возможно) изменить вывод каждой команды тот путь. Если простота чтения является Вашей целью, Вы могли бы хотеть изучить настройку взгляда (например, окраска) Вашей командной строки, как показанный здесь:

можно настроить подсказку путем изменения содержания переменной среды PS1. Вы видите немного примера того, как сделать это в сообщение в блоге , вышеупомянутый снимок экрана от. Как использовать те так называемые escape-последовательности ANSI подробно, как использовать инструменты, которые более удобны, как применить изменения по умолчанию в новых терминалах, и т.д. выходят за рамки этого ответа. Но если Вы решаете использовать ту технику, существует много учебных руководств и дополнительной информации вокруг сети.

0
ответ дан 18 July 2016 в 11:40

Другие вопросы по тегам:

Похожие вопросы: