Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.unix.shell > #26910
| From | Geoff Clare <geoff@clare.See-My-Signature.invalid> |
|---|---|
| Newsgroups | comp.unix.shell |
| Subject | Re: Variable var names |
| Date | 2026-06-12 13:42 +0100 |
| Message-ID | <4fbtfm-c51.ln1@ID-313840.user.individual.net> (permalink) |
| References | <n91qs8Fk65fU1@mid.individual.net> |
Frank Winkler wrote: > I'm playing with the following in an interactive bash as well as in a > ksh script: > > $ n=1 > $ x1=" ok " > $ x2=" not ok " > $ eval echo \$x$n > ok > $ eval echo "\$x$n" > ok > $ n=2 > $ eval echo "\$x$n" > not ok > $ > > So the variable var name seems to work but why are the blanks "deleted" > here? After eval interprets: eval echo "\$x$n" the command to be executed by the shell (with n=1) is: echo $x1 In order to quote the argument passed to echo, you need to supply some quotes that will survive the parsing that eval does: $ n=1 $ x1=" ok " $ eval echo "\"\$x$n\"" ok Here the command to be executed by the shell is: echo "$x1" > Just out of curiosity, I tried this: > > $ IFS="" eval echo ".\$x$n." > . not ok . > $ > > To my surprise, it works but why is IFS relevant here? Hopefully you can see why now, given the extra quotes in my example above. > And to my even > bigger surprise, it looks like everything seems to behave as expected in > the bash session but in the ksh script, IFS is not just changed for this > single command but globally - so I had to save and restore it to prevent > the whole script from exploding. This is actually required by POSIX. If you set POSIXLY_CORRECT=1 in the environment, bash does the same. (It's required for the "special built-in utilities", of which eval is one.) -- Geoff Clare <netnews@gclare.org.uk>
Back to comp.unix.shell | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Variable var names Frank Winkler <usenet@f.winkler-ka.de> - 2026-06-12 09:30 +0200
Re: Variable var names gazelle@shell.xmission.com (Kenny McCormack) - 2026-06-12 09:02 +0000
Re: Variable var names Frank Winkler <usenet@f.winkler-ka.de> - 2026-06-13 12:29 +0200
Re: Variable var names gazelle@shell.xmission.com (Kenny McCormack) - 2026-06-13 11:14 +0000
Re: Variable var names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-13 13:15 +0200
Re: Variable var names ram@zedat.fu-berlin.de (Stefan Ram) - 2026-06-12 11:26 +0000
Re: Variable var names ram@zedat.fu-berlin.de (Stefan Ram) - 2026-06-12 11:38 +0000
Re: Variable var names Frank Winkler <usenet@f.winkler-ka.de> - 2026-06-12 14:07 +0200
Re: Variable var names ram@zedat.fu-berlin.de (Stefan Ram) - 2026-06-12 12:31 +0000
Re: Variable var names Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-06-13 02:48 +0000
Re: Variable var names Christian Weisgerber <naddy@mips.inka.de> - 2026-06-12 12:12 +0000
Re: Variable var names Frank Winkler <usenet@f.winkler-ka.de> - 2026-06-12 15:19 +0200
Re: Variable var names Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-06-13 02:51 +0000
Re: Variable var names Geoff Clare <geoff@clare.See-My-Signature.invalid> - 2026-06-12 13:42 +0100
Re: Variable var names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-12 17:41 +0200
Re: Variable var names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-12 17:54 +0200
Re: Variable var names Frank Winkler <usenet@f.winkler-ka.de> - 2026-06-13 12:32 +0200
Re: Variable var names Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-06-14 01:12 +0000
Re: Variable var names Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-06-13 00:20 +0000
Re: Variable var names Kaz Kylheku <046-301-5902@kylheku.com> - 2026-06-23 21:25 +0000
Re: Variable var names Helmut Waitzmann <nn.throttle@erine.email> - 2026-06-24 10:45 +0200
Re: Variable var names Christian Weisgerber <naddy@mips.inka.de> - 2026-06-24 11:41 +0000
csiph-web