there was a linefeed in my source between output="" and the printf.
It's a gmail feature to mangle your input.



On Tue, Jun 23, 2020 at 12:30 PM Greg Wooledge <wool...@eeg.ccf.org> wrote:

> On Tue, Jun 23, 2020 at 12:21:24PM -0700, L A Walsh wrote:
> > set output
> > output=""printf ${1:+-v $1} "%s:%s" 23 myproc
> > -Bash: printf: ` output': not a valid identifier
>
> Your command is simply wrong.  You've got two double-quotes in a row,
> which simply cancel each other out, as they contain only the empty
> string.  So, you are running this:
>
> output=printf   ${1:+-v $1}   %s:%s   23   myproc
>
> Or in other words, create the environment variable 'output' with content
> 'printf' in the temporary environment of the command "output", which is
> generated by the unquoted parameter expansion between the assignment
> and the %s:%s argument.
>
> Moreover, the error message you show is *not* the one generated by this
> command.
>
> unicorn:~$ set output
> unicorn:~$ output=""printf ${1:+-v $1} "%s:%s" 23 myproc
> bash: -v: command not found
>
> The unquoted parameter expansion ${1:+...} expands to the two words
> "-v" and "output", so you are attempting to run a command named "-v".
> Thus, the error that I showed.
>
> Either your email does not contain the actual command you're running,
> or you've misrepresented the error message it produces.  Or both.
>
>

Reply via email to