第一个问题 ^^
我有一个自动完成脚本,其中包含以下内容:
COMPREPLY=()
mapfile -t MAP< <(compgen -A directory -- "$cur")
for entry in "${MAP[@]}"; do
# if [[ "$entry" =~ ([^/]*$) ]]; then
# COMPREPLY+=("$(printf "%q" "${BASH_REMATCH[1]}")")
COMPREPLY+=("$(printf "%q/" "$entry")")
# fi
done;;
目标是使用目录名称自动完成命令,以便mycmd m[TAB]
将其完成为mycmd mydir/
这工作得很好,但如果我有 2 个目录mydir1 mydir2
并且我在mydir1
,那么mycmd ../m[TAB]
将显示../mydir1 ../mydir2
。
我希望能够自动完成,mycmd ../mydir1
但只显示mydir1 mydir2
为ls ../
。注释行允许我根据需要更改显示,但自动完成为,mycmd mydir1
这是不正确的。
是否可以mydir1 mydir2
在自动完成时显示为mycmd ../mydir1
?
谢谢 !