Завершение табуляции внутри сингулярности bash shell - PullRequest
0 голосов
/ 13 сентября 2018

Я использую контейнер для сингулярности, созданный из docker ubuntu: базовый образ xenial.Когда я вхожу в оболочку с помощью этой команды -

singularity shell --bind /path/to/inputs:/mnt3,/path/to/outputs:/mnt2 /singularity_docker_xenial_image.img

1) не работает завершение табуляции 2) клавиши со стрелками выдают странные символы

Например, набирая ls [tab][вверх] [вниз] [влево] [вправо] производит это -

singularity_docker_xenial_image.img> $ ls   ^[[A^[[B^[[D^[[C

Кто-нибудь знает 1) почему не работает завершение табуляции и 2) почему создаются странные символы?

Спасибо

1 Ответ

0 голосов
/ 16 сентября 2018

вы должны установить сингулярность с помощью следующих команд:

git clone https://github.com/singularityware/singularity.git

cd singularity

git fetch --all

git checkout 2.6.0

./autogen.sh

./configure --prefix=/usr/local --sysconfdir=/etc

make

sudo make install
  1. соревнование крана

    , если вы устанавливаете сингулярность без параметра - sysconfdir , Сценарий завершения не может быть установлен для всех пользователей. Если вы опустите опцию --sysconfdir, файл конфигурации будет установлен в / usr / local / etc

  2. странные символы

    проверьте, еслиоболочка по умолчанию работает нормально

    echo $ SHELL

значения могут быть / bin / bash или / bin /sh , или, по крайней мере, они являются наиболее распространенными.

проверьте пользовательскую оболочку вне контейнера, поскольку эти значения передаются при отображении контейнера.

Now,терминал представляет собой необработанный код клавиши, отправленный ему клавиатурой, и оболочка обычно перехватывает нажатие клавиши;но по какой-то причине они напрямую печатают значения клавиш-модификаторов.

из руководства по bash для специальных символов, что означает ^ [[A означает?

\ [begin aпоследовательность непечатаемых символов, которую можно использовать для встраивания последовательности управления терминалом в подсказку

последовательность управления терминалом применительно к модификаторам специальных клавиш (Ctrl, Alt, Win, ...).Другими словами, Экранирующие коды ANSI .затем ^ [[A ^ [[B ^ [[D ^ [[C ] - курсор вниз, курсор вверх, курсор влево, курсор вправо , и они отображаются, потому что вы комбинируетеклавиши курсора с клавишами-модификаторами .

На данный момент я не могу дать вам четкое решение из-за недостатка детализации в информации, которую вы предоставляете.

...