Bash 为compgen指定另一个目录以自动完成目录,而不是使用pwd
Bash 为compgen指定另一个目录以自动完成目录,而不是使用pwd,bash,bash-completion,compgen,Bash,Bash Completion,Compgen,compgen-d--$cur将仅建议完成pwd中的目录,对吗 我可以让它在另一个目录中为某个目录建议目录完成吗 例如,如果我在/curr\u dir,我想为/other\u dir生成目录补全,我该怎么办?如何将其指定为compgen,以便不需要转到/other\u dir 在我的bash completion函数中,在调用compgen之前,我尝试对该目录执行cd,但在按下后,我将留在另一个目录中 compgen-d--$cur将仅建议完成pwd中的目录,对吗 否,它将完成$cur,假设内容
compgen-d--$cur
将仅建议完成pwd中的目录,对吗
我可以让它在另一个目录中为某个目录建议目录完成吗
例如,如果我在/curr\u dir
,我想为/other\u dir
生成目录补全,我该怎么办?如何将其指定为compgen
,以便不需要转到/other\u dir
在我的bash completion函数中,在调用compgen
之前,我尝试对该目录执行cd
,但在按下
后,我将留在另一个目录中
compgen-d--$cur
将仅建议完成pwd中的目录,对吗
否,它将完成$cur
,假设内容是路径。通过输入
命令直接插入shell。例如:
$ compgen -d -- "/"
/run
/lib64
/usr
[...]
因此,您唯一需要做的就是使用“$other_dir”而不是“$cur”。
另外,请记住引用字符串,否则shell可能会拆分目录名:
compgen -d -- "$foo" # good
compgen -d -- $foo # bad