我正在尝试使用 Bash 命令来完成,只是为了完成一些用于我的主 .sh 文件的命令。但我在使用这个 Bash 代码时遇到了一些问题:
function _test()
{
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=($( compgen -W '--activate --help --new' -- $cur ) )
}
complete -F _test test
现在,当我将其放入终端并调用它时,代码可以正常工作,但如果我将其放入 .sh 脚本并运行它,则不会执行任何操作。我还尝试将此函数复制并粘贴到 bashrc 文件中(这也不起作用),因为我是 Bash 脚本新手,我不知道出了什么问题。感谢您的所有帮助!
答案1
只需将您的代码放入我的代码中即可.bashrc
,它确实有效。
.bashrc
您应该通过运行. ~/.bashrc
或source ~/.bashrc
仅打开一个新终端来执行它以使其生效。
bash XXX.sh
如果您使用或运行包含该完成代码的 .sh 脚本,它将不起作用./XXX.sh
。使用. ./XXX.sh
或source ./XXX.sh
代替。