Oops, should have tested first. $1 should have been $2.
On Tue, Oct 30, 2012 at 11:29 AM, John Abreau <[email protected]> wrote: > Interesting. I had written my own, ages ago, but I made them two > separate functions. Also, they work not only for PATH, but for > any similar environment variable such as MANPATH, CLASSPATH, etc. > > I never made them check for a pre-existing instance, though; they were > simple one-liners. Thanks for the tip; I'm updating them to do that. > > Usage: > > prepend-path PATH /path/to/bin > append-path PATH /path/to/bin > > prepend-path() { > case "$1" in > *:"$1":*) > ;; > *) > eval "$1=$2:\$$1" ;; > esac > } > > append-path() { > case "$1" in > *:"$1":*) > ;; > *) > eval "$1=\$$1:$2" ;; > esac > } > > > On Tue, Oct 30, 2012 at 10:36 AM, Jerry Feldman <[email protected]> wrote: >> On 10/30/2012 10:13 AM, Rich Pieri wrote: >>> On Tue, 30 Oct 2012 07:50:48 -0400 >>> Glenn Hoffman <[email protected]> wrote: >>>> existence of .bashrc, since I have never used it myself. What's the >>>> reason for a separate startup file for a non-login interactive shell? >>> As a matter of principle, an interactive session should have one and >>> only one login process associated with it. That's the login shell, >>> whether it's BASH or something else. >>> >>> As a matter of practice, logging in on the console is a little >>> different from starting a screen session. Having separate login and >>> non-login run command files makes this easy keep sane. This is just one >>> practical example among many. >>> >> Agreed. In the case of a Gnome or KDE session, it is the session that is >> effectively the login shell. but neither gnome nor kde parse ~/.profile. >> They generally use xinitrc. >> The bottom line is it is, IMHO, best to set your path, environment >> variables and aliases ~/.bashrc. There is a very nice function in >> /etc/bashrccalled pathmung() that allows you to add path variables to >> your path either at the beginning or end but without duplicating anything: >> pathmunge () { >> case ":${PATH}:" in >> *:"$1":*) >> ;; >> *) >> if [ "$2" = "after" ] ; then >> PATH=$PATH:$1 >> else >> PATH=$1:$PATH >> fi >> esac >> } >> >> If you read the function, it first tests to make sure your element is >> not already in $PATH. In the default case '*)' it looks if you have >> specified, 'after', and if so, it appends the element to your path, >> otherwise it prepends. >> >> >> >> -- >> Jerry Feldman <[email protected]> >> Boston Linux and Unix >> PGP key id:3BC1EB90 >> PGP Key fingerprint: 49E2 C52A FC5A A31F 8D66 C0AF 7CEA 30FC 3BC1 EB90 >> >> >> >> _______________________________________________ >> Discuss mailing list >> [email protected] >> http://lists.blu.org/mailman/listinfo/discuss >> > > > > -- > John Abreau / Executive Director, Boston Linux & Unix > PGP KeyID: 32A492D8 / Email: [email protected] > PGP FP: 7834 AEC2 EFA3 565C A4B6 9BA4 0ACB AD85 32A4 92D8 -- John Abreau / Executive Director, Boston Linux & Unix PGP KeyID: 32A492D8 / Email: [email protected] PGP FP: 7834 AEC2 EFA3 565C A4B6 9BA4 0ACB AD85 32A4 92D8 _______________________________________________ Discuss mailing list [email protected] http://lists.blu.org/mailman/listinfo/discuss
