5

compgen -d -- $cur只会建议 pwd 中的目录完成吗?

我可以让它在另一个目录中建议某个目录的目录完成吗?

例如。如果我在/curr_dir,并且我想生成目录完成,/other_dir我该怎么办?我如何将其指定为compgen,这样我就不需要去/other_dir

在我的 bash-completion 函数中,我尝试cd在调用之前对该目录执行 a 操作,compgen但在按下<Tab>.

4

1 回答 1

5

compgen -d -- $cur只会建议 pwd 中的目录完成吗?

不,它将完成$cur,假设内容是路径。通过将命令直接输入到您的 shell 中自己尝试一下。例子:

$ compgen -d -- "/"
/run
/lib64
/usr
[...]

所以你唯一需要做的就是使用“$other_dir”而不是“$cur”。另外,请记住引用字符串,否则 shell 可能会拆分目录名称:

compgen -d -- "$foo" # good
compgen -d -- $foo   # bad
于 2014-05-16T19:20:00.810 回答