Примечание :этот ответ относится к первой версии вопроса.
Сначала определим i
с помощью вкладки:
$ i=$'ls -l\tcd ~'
Теперь давайте попробуем ваши команды без, а затем с двойными -кавычками:
$ echo $i | cut -f2
ls -l cd ~
$ echo "$i" | cut -f2
cd ~
Если вы хотите, чтобы cut
работало должным образом, вам нужно заключить $i
в двойные -кавычки. Без двойных -кавычек оболочка выполняет, среди прочего, разбиение слов , в результате чего табуляция заменяется пробелом. Это препятствует тому, чтобы команда cut
работала так, как вы ожидаете.
Выполнение назначения Command не меняет этого:
$ Command=$(echo $i | cut -f2); declare -p Command
declare -- Command="ls -l cd ~"
$ Command=$(echo "$i" | cut -f2); declare -p Command
declare -- Command="cd ~"
Вы не предоставили здесь более широкий контекст, но, как правило, пытаться помещать команды в переменные — плохая идея. См. "Я пытаюсь поместить команду в переменную, но сложные случаи всегда терпят неудачу!" .
Отдельно, что касается переменной COMMAND
, лучше использовать нижний или смешанный регистр для ваших переменных оболочки. Система использует верхний регистр для своих переменных, и вы не хотите случайно перезаписать одну из них.
Самый простой ответ — просто запустить службу терминального входа на последовательном устройстве, как в ответе telcoM. Это не меняет консоли Linux . Перенос консоли Linux на последовательное устройство проще в реализации, но имеет больше побочных -эффектов.
Просто укажите console=ttyS0
в командной строке ядра, предоставленной ему загрузчиком начальной загрузки (возможно, GRUB в вашем случае ).
Генератор, предоставленный systemd -, увидит это и автоматически активирует службу serial-getty@ttyS0
. Но, кроме того, весь фактический консольный вывод ядра и программ, записывающих в /dev/console
, теперь будет поступать на ваш DEC VT320.
К сожалению, VT320 не поддерживает цвет . (У VT340 есть, и только 16 штук.)
Это не повезло, потому что многие программы в настоящее время просто жестко подключают ECMA -48 последовательностей управления цветом, включая те, которые выдают сообщения на /dev/console
. Все программы, входящие в пакет systemd, работают так же, пока окружение процесса #1 , которое они посещают и читают,не содержит TERM=dumb
. Другие программы принимают другие решения, часто основанные на их собственной среде процесса, а некоторые вообще не принимают решений, основанных на терминальном типе , потому что автор никогда не думал, что вывод программы может быть серийное устройство с настоящим монохромным терминалом.
Таким образом, вы также должны убедиться, что в командной строке ядра указано TERM=dumb
, что не является правильным описанием VT320 и крайне неадекватно.
linux-console
. Направляющая ноша . Программное обеспечение. linux-vt
. Направляющая ноша . Программное обеспечение.