基于程序的第一个参数的Shell完成

基于程序的第一个参数的Shell完成,shell,autocomplete,Shell,Autocomplete,在大多数现代shell中,按选项卡可启用自动完成。例如,使用zsh时,键入以下部分命令后: $arp- 然后按tab键-可能的结果将显示给用户 $ arp - -S -- create an arp entry, replacing any existing entry -a -- show entries for all hosts ... 挑战 我想编写一个程序foo,其参数是用户希望执行的命令 是否可以为foo的参数启用自动完成功能?这意味着键入以下内容: $foo arp- 后

在大多数现代shell中,按
选项卡
可启用自动完成。例如,使用
zsh
时,键入以下部分命令后:

$arp-
然后按tab键-可能的结果将显示给用户

$ arp -
-S  -- create an arp entry, replacing any existing entry
-a  -- show entries for all hosts
...
挑战 我想编写一个程序
foo
,其参数是用户希望执行的命令

是否可以为
foo
的参数启用自动完成功能?这意味着键入以下内容:

$foo arp-
后跟
选项卡
将导致

$ foo arp -
-S  -- create an arp entry, replacing any existing entry
-a  -- show entries for all hosts
-d  -- delete entry from table
...
i、 e自动完成“起点”不是程序
foo
,而是
foo
的第一个参数