首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ssh完成: sed:-e表达式#1,char 97:命令RHS上的无效引用\2

ssh完成: sed:-e表达式#1,char 97:命令RHS上的无效引用\2
EN

Unix & Linux用户
提问于 2019-02-23 14:55:24
回答 1查看 294关注 0票数 1

我正在使用Ubuntu14.04.5LTS。

文件~/.ssh/config的任何主机上的ssh完成都不能工作:

代码语言:javascript
复制
$ ssh b2sed: -e expression #1, char 97: invalid reference \2 on `s' command's RHS

用于ssh完成的包已经安装:

代码语言:javascript
复制
$ dpkg -S /usr/share/bash-completion/completions/ssh
bash-completion: /usr/share/bash-completion/completions/ssh
EN

回答 1

Unix & Linux用户

发布于 2019-02-23 18:52:39

我发现在我的系统中,sed被别名为sed -E

因此,实际上,我没有删除这个别名,而是决定更新/usr/share/bash-completion/bash_completion脚本中的D3函数(我认为这并不是真正的命令):

代码语言:javascript
复制
$ type _known_hosts_real | grep -w sed
        local hosts=$( sed -ne 's/^[ \t]*[Hh][Oo][Ss][Tt]\([Nn][Aa][Mm][Ee]\)\{0,1\}['"通过将sed -ne替换为command sed -ne,这样:# append any available aliases from config files
if [[ ${#config[@]} -gt 0 && -n "$aliases" ]]; then
    local hosts=$( command sed -ne 's/^[ \t]*[Hh][Oo][Ss][Tt]\([Nn][Aa][Mm][Ee]\)\{0,1\}['"但是,当更新bash-completion包时,这些更改将丢失。\t '"']\{1,\}\([^#*?]*\)\(#.*\)\{0,1\}$/\2/p' "${config[@]}" );通过将D5替换为D6,这样:A7但是,当更新D8包时,这些更改将丢失。\t '"']\{1,\}\([^#*?]*\)\(#.*\)\{0,1\}$/\2/p' "${config[@]}" )
    COMPREPLY+=( $( compgen -P "$prefix$user" \
        -S "$suffix" -W "$hosts" -- "$cur" ) )
fi

但是,当更新D8包时,这些更改将丢失。

\t '"']\{1,\}\([^#*?]*\)\(#.*\)\{0,1\}$/\2/p' "${config[@]}" );

通过将D5替换为D6,这样:

A7

但是,当更新D8包时,这些更改将丢失。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/502527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档