There are two completion scripts available: ovs-appctl-bashcomp.bash
and ovs-vsctl-bashcomp.bash
.
ovs-appctl-bashcomp.bash
adds bash command-line completion support for ovs-appctl
, ovs-dpctl
, ovs-ofctl
and ovsdb-tool
commands.
- Display available completion or complete on unfinished user input (long option, subcommand, and argument).
- Subcommand hints
- Convert between keywords like
bridge
,port
,interface
, ordp
and the available record in ovsdb.
- Only supports a small set of important keywords (
dp
,datapath
,bridge
,switch
,port
,interface
,iface
). Does not support parsing of nested options. For example:
$ ovsdb-tool create [db [schema]]
Does not support expansion on repeated argument. For example:
$ ovs-dpctl show [dp...]).
- Only supports matching on long options, and only in the format
--option [arg]
. Do not use--option=[arg]
.
ovs-vsctl-bashcomp.bash
adds Bash command-line completion support for ovs-vsctl
command.
- Display available completion and complete on user input for global/local options, command, and argument.
- Query database and expand keywords like
table
,record
,column
, orkey
, to available completions. - Deal with argument relations like 'one and more', 'zero or one'.
- Complete multiple
ovs-vsctl
commands cascaded via--
.
Completion of very long ovs-vsctl
commands can take up to several seconds.
The bashcomp scripts should be placed at /etc/bash_completion.d/
to be available for all bash sessions. Running make install
will place the scripts to $(sysconfdir)/bash_completion.d/
, thus, the user should specify --sysconfdir=/etc
at configuration. If OVS is installed from packages, the scripts will automatically be placed inside /etc/bash_completion.d/
.
If you just want to run the scripts in one bash, you can remove them from /etc/bash_completion.d/
and run the scripts via . ovs-appctl-bashcomp.bash
or . ovs-vsctl-bashcomp.bash
.
Unit tests are added in tests/completion.at
and integrated into autotest framework. To run the tests, just run make check
.