compgen -d -- $cur
只会建议 pwd 中目录的补全吗?
我可以让它在另一个目录中时为某个目录建议目录完成吗?
例如。如果我在 /curr_dir
,我想为 /other_dir
生成目录完成我该怎么办?如何将其指定为 compgen
, 这样我就不需要去 /other_dir
在我的 bash 完成函数中,我尝试执行 cd
在调用之前到那个目录 compgen
但是在按下 <Tab>
之后我就留在了另一个目录中.
最佳答案
compgen -d -- $cur
will suggest completions for the directories in pwd only right?
不,它将完成 $cur
,假设内容是一个路径。自己试试吧,输入
命令直接进入你的shell。示例:
$ compgen -d -- "/"
/run
/lib64
/usr
[...]
所以你唯一要做的就是使用“$other_dir”而不是“$cur”。 另外,请记住引用字符串,否则 shell 可能会拆分目录名称:
compgen -d -- "$foo" # good
compgen -d -- $foo # bad
关于bash - 为 compgen 指定另一个目录以自动完成目录,而不是使用 pwd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23700011/