[libvirt] [PATCH] virsh: Treat \n like ; in batch mode

John Ferlan jferlan at redhat.com
Mon Feb 25 16:48:04 UTC 2019



On 2/21/19 1:55 PM, Eric Blake wrote:
> I wanted to do a demonstration with virsh batch mode, which
> takes multiple commands all packed into a single argument:
> 
> $ virsh -c test:///default 'echo a; echo b;'
> a
> b
> 
> but that produced a really long line, so I tried to make it
> more legible:
> 
> $ virsh -c test:///default '
>    echo a;
>    echo b;
> '
> error: unknown command: '
> '
> 
> Let's be more like the shell, and treat unquoted newline as a
> command separator just as we do for semicolon.  In fact, with
> that, I can even now mix styles:
> 
> $ virsh -c test:///default '
>    echo a; echo b
>    echo c
> '
> a
> b
> c
> 
> Fix the grammer in a nearby comment while at it.
> 
> Signed-off-by: Eric Blake <eblake at redhat.com>
> ---
>  tools/virsh.pod      | 4 ++--
>  tools/virt-admin.pod | 4 ++--
>  tools/vsh.c          | 6 +++---
>  3 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/tools/virsh.pod b/tools/virsh.pod
> index 67edb57b14..2bf1ee77bb 100644
> --- a/tools/virsh.pod
> +++ b/tools/virsh.pod
> @@ -40,8 +40,8 @@ as a name.
>  The B<virsh> program can be used either to run one I<COMMAND> by giving the
>  command and its arguments on the shell command line, or a I<COMMAND_STRING>
>  which is a single shell argument consisting of multiple I<COMMAND> actions
> -and their arguments joined with whitespace, and separated by semicolons
> -between commands.  Within I<COMMAND_STRING>, virsh understands the
> +and their arguments joined with whitespace, and separated by semicolons or

s/whitespace, and/whitespace and/

> +newlines between commands.  Within I<COMMAND_STRING>, virsh understands the
>  same single, double, and backslash escapes as the shell, although you must
>  add another layer of shell escaping in creating the single shell argument.
>  If no command is given in the command line, B<virsh> will then start a minimal
> diff --git a/tools/virt-admin.pod b/tools/virt-admin.pod
> index 3ddbbff934..b2c9a1db6d 100644
> --- a/tools/virt-admin.pod
> +++ b/tools/virt-admin.pod
> @@ -23,8 +23,8 @@ Where I<command> is one of the commands listed below.
>  The B<virt-admin> program can be used either to run one I<COMMAND> by giving the
>  command and its arguments on the shell command line, or a I<COMMAND_STRING>
>  which is a single shell argument consisting of multiple I<COMMAND> actions
> -and their arguments joined with whitespace, and separated by semicolons
> -between commands.  Within I<COMMAND_STRING>, virt-admin understands the
> +and their arguments joined with whitespace, and separated by semicolons or

s/whitespace, and/whitespace and/

Reviewed-by: John Ferlan <jferlan at redhat.com>

John

> +newlines between commands.  Within I<COMMAND_STRING>, virt-admin understands the
>  same single, double, and backslash escapes as the shell, although you must
>  add another layer of shell escaping in creating the single shell argument.
>  If no command is given in the command line, B<virt-admin> will then start a minimal

[...]




More information about the libvir-list mailing list