全球主机交流论坛

标题: centos大佬来来来,困扰了我一个多年的问题 [打印本页]

作者: uptime    时间: 2025-2-13 15:05
标题: centos大佬来来来,困扰了我一个多年的问题
本帖最后由 uptime 于 2025-2-13 15:34 编辑

先定义一个变量AAA
export AAA=/usr

再输入:
cd $AAA/local
此时按TAB键,没法联想出下面的路径,下面还有bin lib etc...,怎么才能联想出下面的路径?


另外发现:debian11就没有此问题
作者: hacn    时间: 2025-2-13 15:07
把你的脑子插线到服务器上 让他知道你在想什么就行
作者: Debians    时间: 2025-2-13 15:08
把你的脑子插线到服务器上 让他知道你在想什么就行
作者: 风为裳    时间: 2025-2-13 15:10
要让`cd $AAA/local`中的TAB补全正常工作,可以按照以下步骤检查和解决:  1. **确认路径正确性**:    - 变量`AAA`的值为`/usr/local`,因此`$AAA/local`对应的路径是`/usr/local/local`。检查该路径是否存在:      ```bash      ls -l /usr/local/local      ```    - 如果路径不存在,修正命令为`cd $AAA`,进入正确目录后再补全子目录(如`bin`、`lib`等)。  2. **正确使用变量与路径拼接**:    - 若要进入`/usr/local`的子目录(如`bin`),应输入:      ```bash      cd $AAA/bin      ```    - 或先进入`$AAA`再补全:      ```bash      cd $AAA  # 进入/usr/local      cd bin/   # 按Tab补全      ```  3. **确保Bash补全功能正常**:    - 安装`bash-completion`包(如未安装):      ```bash      sudo apt-get install bash-completion  # Debian/Ubuntu      ```    - 重新加载配置:      ```bash      exec bash      ```  4. **检查权限问题**:    - 确保你有权限访问目标目录:      ```bash      ls -ld /usr/local/local  # 检查是否存在及权限      ```  5. **验证变量展开后的补全**:    - 输入`cd $AAA/`后按Tab,应列出`/usr/local`下的子目录。若此处无法补全,检查Bash配置或变量是否正确。  **总结**:大多数情况下,路径错误(如多写了`local`)导致补全失败。修正路径后,TAB补全应正常工作。若问题依旧,检查Bash补全配置和目录权限。
作者: uptime    时间: 2025-2-13 15:35
complete -o nospace,这个参数也设置不起来




欢迎光临 全球主机交流论坛 (https://lilynana.eu.org/) Powered by Discuz! X3.4