首页 > 解决方案 > 奇点 bash shell 内的制表符补全

问题描述

我正在使用从 docker ubuntu:xenial 基础映像创建的奇异容器。当我使用此命令进入外壳时 -

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

1)制表符补全不起作用 2)箭头键产生奇怪的字符

例如输入ls[tab][up][down][left][right]会产生这个 -

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

有谁知道1)为什么制表符完成不起作用和2)为什么会产生奇怪的字符?

谢谢

标签: tab-completionlinux-containerssingularity-container

解决方案


您必须使用以下命令安装奇异性:

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参数的情况下安装singularity,则无法为所有用户安装完成脚本。 如果省略 --sysconfdir 选项,配置文件将安装在 /usr/local/etc

  2. 奇怪的字符

    检查默认外壳是否工作正常

    回声 $SHELL

这些值可以是/bin/bash/bin/sh,或者至少它们是最常见的。

检查用户的shell,在容器外,因为这些值是在显示容器时传递的。

现在,终端表示键盘发送给它的键的原始键码,shell 通常会拦截按键;但由于某种原因,他们直接打印修饰键的值。

从特殊字符的bash手册中, ^[[A 是什么意思?

\[ 开始一系列非打印字符,可用于将终端控制序列嵌入到提示中

终端控制序列引用特殊键(Ctrl、Alt、Win、...)修饰符。换句话说,ANSI 转义码。然后^[[A^[[B^[[D^[[C是向下光标、向上光标、向左光标、向右光标 ,这些显示是因为您将光标键与修饰键组合在一起

在这一点上,由于您提供的信息缺乏细节,我无法为您提供明确的解决方案。


推荐阅读