[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-bash] how to understand echo ${PATH#*:}
From: |
Bob Proulx |
Subject: |
Re: [Help-bash] how to understand echo ${PATH#*:} |
Date: |
Sun, 25 Dec 2011 21:41:23 -0700 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
lina wrote:
> how to understand
> echo ${PATH#*:}
>
> the #*:
> I don't get it. why the first path before : was gone.
This is really a help-bash question. Please send all follow-ups
there.
The documentation says:
${parameter#word}
${parameter##word}
Remove matching prefix pattern. The word is expanded to produce
a pattern just as in pathname expansion. If the pattern matches
the beginning of the value of parameter, then the result of the
expansion is the expanded value of parameter with the shortest
matching pattern (the ``#'' case) or the longest matching pat-
tern (the ``##'' case) deleted. If parameter is @ or *, the
pattern removal operation is applied to each positional parame-
ter in turn, and the expansion is the resultant list. If param-
eter is an array variable subscripted with @ or *, the pattern
removal operation is applied to each member of the array in
turn, and the expansion is the resultant list.
Since PATH is a series of directories separated by colons "#*:" will
match and therefore remove the first element of the PATH.
$ foo=one:two:three
$ echo ${foo#*:}
two:three
And using two pound signs "##" would match the loggest pattern and
remove all up through the last one.
$ echo ${foo##*:}
three
Bob
- Re: [Help-bash] how to understand echo ${PATH#*:},
Bob Proulx <=