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.