В первую очередь, используйте параметр отладки оболочки set -vx
видеть, как/когда Вар, и т.д. оцениваются.
Извините, но почему у Вас есть своя установка кода как
run="..."?
потому что попытка позже использовать переменную $run
?
Если так, затем почти наверняка необходимо сделать
eval "$run"
который открывает совершенно новую кучу проблем до выхода из специальных символов. Поскольку другой комментатор указывает, что необходимо будет только выйти из требуемых символов, необходимо будет вдвойне выйти из них. Когда я раньше заставлял вещи как это работать, я мог волновать с Escape как \\\\\
(5!) для получения вещей, работающих.
Без дальнейшего объяснения контекста для этого кода моя рекомендация состоит в том, чтобы не учесть run=
материал и просто выполненный tail -n0 -f -s 0.01 $cmds |....
как.
Кроме того, на комментарий Gilles, и распространяться о нем, Ваш целый конвейер не имеет большого смысла,
tail -n0 -f -s 0.01 $cmds | (while true; do $tron ....
A. мы не знаем то, что находится в $cmds
B. Нет ничего, что я вижу в подоболочке (while true; ...)
это читает вывод хвоста cmd. Если Вы говорите, что это передается завершенное в последующее tee
после конца while
, затем я изучил что-то новое.
C. Вы действительно хотите выполнить команду $tron с такой скоростью, как Вы можете в бесконечном цикле? В большом количестве систем это завершит потребление по крайней мере 1 полной мощности центральных процессоров. Возможно, добавьте a sleep 1
?
Добавление большего количества контекста о том, что Вы пытаетесь выполнить, поможет нам помочь Вам!Удачи.
Например, для получения американского расположения (то есть, между прочим, превосходный для программирования; посмотрите этот вопрос).
В X, попробовать setxkbmap -layout us
В консоли Linux добавить XKBLAYOUT="us"
кому: /etc/default/keyboard
; затем выполненный setupcon
как суперпользователь. Или, использовать dpkg-reconfigure keyboard-configuration
(также как суперпользователь). Вы могли также использовать другую карту в консоли, чем в X при помощи KMAP
; заглянуть /etc/console-setup/
.
Это может потребовать некоторой игры; возможно, требуется записать псевдонимы и/или функции в Вашем .bashrc
для быстрого доступа. Если Вы планируете переключение назад и вперед, я нашел, что составить ключ является лучшим решением. Если, конечно, Вы не пишете в полностью другом алфавите.
Это действительно странно это X11
не обеспечивает стандартный инструмент для переключения на данное расположение (когда Вы определяете несколько с setxkbmap
).
Но я просто нашел инструмент, который может сделать это: xkblayout-state
С ним можно получить/установить текущий макет, или по имени или положением в стопке расположения.