-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
According to Angel Tsankov on 2/16/2009 2:26 AM:
There are some contexts, such as variable assignments, where double
quotes are not necessary.
foo=`echo a b`
bar=`echo a b`
only the setting of bar is guaranteed to parse correctly in all
Eric Blake wrote:
The portability bug I am referring to is the use of double-quoted
back-ticks containing a double quote. Some (buggy) shells require you to
use \ instead of inside backticks if the overall backtick expression is
double-quoted.
Hence this statement in Posix:
Either of
Angel Tsankov wrote:
Hi,
Using bash 3.2.48(1)-release, echo ~root prints ~root instead of /root.
Is this the expected behaviour?
Yes. The tilde is not the first character in the word. Portions of
words to be tilde-expanded can't be quoted at all, either.
Chet
--
``The lyf so short,
Chet Ramey wrote:
Angel Tsankov wrote:
Hi,
Using bash 3.2.48(1)-release, echo ~root prints ~root instead of
/root. Is this the expected behaviour?
Yes. The tilde is not the first character in the word. Portions of
words to be tilde-expanded can't be quoted at all, either.
I see. I
There may be other ways to do this, but:
CPATH=${CPATH}${CPATH:+:}$(echo ~usr1/blah/blah)
should work.
jon.
On Mon, Feb 16, 2009 at 9:02 AM, Angel Tsankov fn42...@fmi.uni-sofia.bg wrote:
Chet Ramey wrote:
Angel Tsankov wrote:
Hi,
Using bash 3.2.48(1)-release, echo ~root prints
Jon Seymour wrote:
There may be other ways to do this, but:
CPATH=${CPATH}${CPATH:+:}$(echo ~usr1/blah/blah)
should work.
Well, I'd like to avoid the use of external commands.
--Angel
Jon Seymour wrote:
If you are willing to trade conciseness in order to eliminate use of
builtin commands, you can use.
local tmp=~usr1/blah/blah
CPATH=${CPATH}${CPATH:+:}${tmp}
However, if you are concerned about echo failing, then you also need
to be concerned about local failing.
Jon Seymour jon.seym...@gmail.com wrote:
If the builtin echo fails it will be because the bash interpreter has
suffered a catastrophic failure of some kind [ e.g. run out of memory
]. Once that has happened, all bets are off anyway.
Probably true, but command substitution forks a separate
On Mon, Feb 16, 2009 at 10:22 AM, Paul Jarc p...@po.cwru.edu wrote:
Jon Seymour jon.seym...@gmail.com wrote:
If the builtin echo fails it will be because the bash interpreter has
suffered a catastrophic failure of some kind [ e.g. run out of memory
]. Once that has happened, all bets are off
Jon Seymour jon.seym...@gmail.com wrote:
On Mon, Feb 16, 2009 at 10:22 AM, Paul Jarc p...@po.cwru.edu wrote:
CPATH=${CPATH:+$CPATH:}${#+~usr1/blah/blah}
Out of interest, how does one derive that outcome from the documented
behaviour of bash? That is, which expansion rules are being invoked?
Jon Seymour wrote:
On Mon, Feb 16, 2009 at 10:22 AM, Paul Jarc p...@po.cwru.edu wrote:
Jon Seymour jon.seym...@gmail.com wrote:
If the builtin echo fails it will be because the bash interpreter
has suffered a catastrophic failure of some kind [ e.g. run out of
memory ]. Once that has
Angel Tsankov fn42...@fmi.uni-sofia.bg wrote:
How do you know that $# is always set? And what about $...@? To what values
are these parameters set outside any function?
$# gives the number of positional parameters. If there aren't any
positional parameters, then it's set to 0. In the man
Jon Seymour jon.seym...@gmail.com wrote:
The manual specifies a rule for ${parameter:+word}, but not
${parameter+word}.
It's there, but easy to miss:
In each of the cases below, word is subject to tilde expansion, parame-
ter expansion, command substitution, and arithmetic
On Mon, Feb 16, 2009 at 12:11 PM, Paul Jarc p...@po.cwru.edu wrote:
Jon Seymour jon.seym...@gmail.com wrote:
The manual specifies a rule for ${parameter:+word}, but not
${parameter+word}.
It's there, but easy to miss:
In each of the cases below, word is subject to tilde expansion,
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
According to Angel Tsankov on 2/15/2009 3:02 PM:
I tried CPATH=${CPATH}${CPATH:+:}~usr1/blah/blah. (I quote
expansions just to be on the safe side, though I think home directories may
not contain spaces.)
There are some contexts, such as
15 matches
Mail list logo