Bash command-line completion scripts¶
There are two completion scripts available: ovs-appctl-bashcomp.bash
and
ovs-vsctl-bashcomp.bash
.
ovs-appctl-bashcomp¶
ovs-appctl-bashcomp.bash
adds bash command-line completion support for
ovs-appctl
, ovs-dpctl
, ovs-ofctl
and ovsdb-tool
commands.
Features¶
- 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.
Limitations¶
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¶
ovs-vsctl-bashcomp.bash
adds Bash command-line completion support for
ovs-vsctl
command.
Features¶
- 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--
.
Limitations¶
Completion of very long ovs-vsctl
commands can take up to several seconds.
Usage¶
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
.
Tests¶
Unit tests are added in tests/completion.at
and integrated into autotest
framework. To run the tests, just run make check
.