【发布时间】:2022-01-04 19:36:06
【问题描述】:
操作系统:Debian 5.10.0-10-amd64 #1 SMP Debian 5.10.84-1 (2021-12-08) x86_64 GNU/Linux 硬件:1 核、2GB RAM、VPS(云服务器)
例子:
alias defined
@syslog='sudo less +F /var/log/syslog'
如果我手动输入完整的别名,即@syslog - 那么它执行得很好。
但是,如果我只输入几个字符,例如 @sys 或 @sysl 或 @syslo,然后按 键自动完成,则命令会自动完成,看起来像 @syslog
此命令不会执行,因为它现在自动嵌入了 '' 字符。
同样的问题也发生在另一个别名上
!syslog='sudo less +F /var/log/syslog' //This is auto completed as \!syslog
但是,如果我不在别名中使用任何特殊字符 例如
mylog='sudo less +F /var/log/syslog'
然后自动完成工作绝对没问题
此行为仅在此特定 VPS 上可见。 我有另一个具有相同设置和操作系统的 VPS(托管在不同的提供商上),并且至少有十几个定义为 @xxxxx 的别名可以正常工作。
有什么想法吗?
【问题讨论】:
-
您是否尝试从
COMP_WORDBREAKS中删除@? -
bash 不允许在 "=" 周围有空格
-
@stark spaces 只是我的问题中的一个错字。实际文件 (.bash_aliases) 不包含空格。我会解决我的问题。
-
@Fravadona 我试过 echo $COMP_WORDBREAKS 并且它确实有 @ 你能详细说明一下吗?你能帮忙吗 - COMP_WORDBREAKS 是在哪里定义的?哪个文件等?如何删除 @ 符号?
-
您是否考虑并尝试过使用函数来代替?
标签: linux bash autocomplete debian alias