【问题标题】:Tab completion inside singularity bash shell奇点 bash shell 中的制表符补全
【发布时间】:2018-09-13 07:27:23
【问题描述】:

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

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-completion linux-containers singularity-container


    【解决方案1】:

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

    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. 点击比赛

      如果安装singularity时不带--sysconfdir参数,则无法为所有用户安装补全脚本。 如果省略 --sysconfdir 选项,配置文件将安装在 /usr/local/etc

    2. 奇怪的字符

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

      回声 $SHELL

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

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

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

    来自 bash 特殊字符手册,^[[A 是什么意思?

    \[ 开始一系列非打印字符,可以是 用于嵌入 一个终端控制序列进入提示符

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

    由于您提供的信息缺乏细节,目前我无法为您提供明确的解决方案。

    【讨论】:

    • 您好,感谢您的回答。你能再看看吗?由于格式错误,问题不清楚。
    猜你喜欢
    • 2011-01-16
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 2011-04-02
    相关资源
    最近更新 更多