Использование обычного приглашения bash echo -e 'hello\tworld'
производит настоящую вкладку. Однако та же команда, выполняемая на экране GNU, помещает пробелы между двумя словами.
Я тестировал это на Ubuntu 10.04 с версией экрана 4.00.03jw4 (FAU) 2 мая 2006 года и RHEL 5.5 с версией экрана 4.00.03 (FAU) 23 октября 2006 года.
Есть ли способ иметь символы табуляции вывода на экран вместо их преобразования в пробелы?
Нет, нет другого выхода, кроме написания кода. Взгляните на страницу руководства в разделе "ОШИБКИ:"
Аппаратное обеспечение в моем случае - это программный «gnome-terminal».
Этот простой эксперимент внутри экрана GNU показывает мне, что "\ t" выводит символ TAB (НОТА: У вас отсутствовал флаг "-e" в вашей команде echo):
skx@birthday:~$ echo -e "Hello\tWorld" | od -c
0000000 H e l l o \t W o r l d \n
0000014
Теперь я повторяю эту команду и сохраняю результат в файл, проверяя, что символ TAB все еще присутствует:
skx@birthday:~$ echo -e "Hello\tWorld" > x
skx@birthday:~$ od -c < x
0000000 H e l l o \t W o r l d \n
0000014
НО если я скопирую этот файл и копирую и вставляю его с помощью мыши в emacs, TAB теряется. Похоже, что родительский gnome-terminal делает что-то странное, или вкладка преобразуется при вставке в новое окно. В любом случае, я подозреваю, что GNU Screen не виноват.