Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #16444

Re: problem with extra space; setting? cygwin only?

From Greg Wooledge <wooledg@eeg.ccf.org>
Newsgroups gnu.bash.bug
Subject Re: problem with extra space; setting? cygwin only?
Date 2020-06-23 15:29 -0400
Message-ID <mailman.341.1592940590.2574.bug-bash@gnu.org> (permalink)
References <CALOnQv4FDL97PJbsZBxKKqXvdfczPY_ROLpYLgjBaaXLXRfV8A@mail.gmail.com> <20200623192919.GJ19673@eeg.ccf.org>

Show all headers | View raw


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.

Back to gnu.bash.bug | Previous | Next | Find similar


Thread

Re: problem with extra space; setting? cygwin only? Greg Wooledge <wooledg@eeg.ccf.org> - 2020-06-23 15:29 -0400

csiph-web