如何为命令参数设置 bash 完成?

Ste*_*zzo 32 command-line bash

当我打开命令行并输入 时git,我会得到一堆 git 参数的补全,比如添加、提交、合并等等。

如何将这种完成添加到我自己的应用程序中?

到目前为止,我已经能够像这样指定第一级完成:

$ complete -W "asd asdf" ./test.py

$ ./test.py asd
asd asdf
Run Code Online (Sandbox Code Playgroud)

但它试图在那之后继续前进:

$ ./test.py asdf asd
asd asdf
Run Code Online (Sandbox Code Playgroud)

我尝试通过运行为第二级设置完成complete -W "lol" "./test.py asd",但这不起作用。

设置这些的正确方法是什么?一旦我弄清楚了所有的命令,我必须把它们放在哪里?.bashrc每次打开终端时,在 中运行这些命令的大列表,似乎效率不高(另外,如果我不需要的话,我不想弄乱用户的文件)。