* Remove a PATH component
@ 1999-03-09 15:33 Klaus Wacker
1999-03-09 15:57 ` Michael Barnes
0 siblings, 1 reply; 2+ messages in thread
From: Klaus Wacker @ 1999-03-09 15:33 UTC (permalink / raw)
To: zsh users mailing list
[-- Attachment #1: Type: text/plain, Size: 1383 bytes --]
Dear zsh, I am trying to write a script to be sourced which removes
PATH components matching a given pattern and which is supposed to be
usable from zsh as well as ksh, bash etc. The best I have come up with
so far is the following:
----------cut-here----------------------------------------
oldifs="$IFS"
IFS=:
if [[ $SHELL = *zsh ]]
then
set ${=PATH}
else
set $PATH
fi
IFS="$oldifs"
PATH=
for i
do
case $i in
*tetex*)
;;
*)
PATH=$PATH:$i
;;
esac
done
PATH=${PATH#:}
----------cut-here----------------------------------------
This works for people who stick with their login shell, but not for
someone who calls ksh from zsh because then SHELL remains set to zsh.
My first try was to test $0 instead of $SHELL, but that gets set to
the name of the file being sourced by zsh (with some option settings).
Does anybody have a better idea either for a reliable test on whether
zsh is running or for a way which avoids the test?
(I know that the above fragment breaks with 10 or more PATH components
- I should use a while loop with shift instead of the for loop).
--
Klaus Wacker wacker@Physik.Uni-Dortmund.DE
Experimentelle Physik V http://www.physik.uni-dortmund.de/~wacker
Universitaet Dortmund Tel.: +49 (231) 755 3587
D-44221 Dortmund Fax: +49 (231) 755 3569
[-- Attachment #2: Type: application/pgp-signature, Size: 204 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Remove a PATH component
1999-03-09 15:33 Remove a PATH component Klaus Wacker
@ 1999-03-09 15:57 ` Michael Barnes
0 siblings, 0 replies; 2+ messages in thread
From: Michael Barnes @ 1999-03-09 15:57 UTC (permalink / raw)
To: zsh users mailing list
Try testing for ZSH_VERSION.
On Tue, Mar 09, 1999 at 04:33:23PM +0100, Klaus Wacker wrote:
> Dear zsh, I am trying to write a script to be sourced which removes
> PATH components matching a given pattern and which is supposed to be
> usable from zsh as well as ksh, bash etc. The best I have come up with
> so far is the following:
>
> ----------cut-here----------------------------------------
> oldifs="$IFS"
> IFS=:
> if [[ $SHELL = *zsh ]]
> then
> set ${=PATH}
> else
> set $PATH
> fi
> IFS="$oldifs"
> PATH=
> for i
> do
> case $i in
> *tetex*)
> ;;
> *)
> PATH=$PATH:$i
> ;;
> esac
> done
> PATH=${PATH#:}
> ----------cut-here----------------------------------------
>
> This works for people who stick with their login shell, but not for
> someone who calls ksh from zsh because then SHELL remains set to zsh.
> My first try was to test $0 instead of $SHELL, but that gets set to
> the name of the file being sourced by zsh (with some option settings).
>
> Does anybody have a better idea either for a reliable test on whether
> zsh is running or for a way which avoids the test?
>
> (I know that the above fragment breaks with 10 or more PATH components
> - I should use a while loop with shift instead of the for loop).
>
> --
> Klaus Wacker wacker@Physik.Uni-Dortmund.DE
> Experimentelle Physik V http://www.physik.uni-dortmund.de/~wacker
> Universitaet Dortmund Tel.: +49 (231) 755 3587
> D-44221 Dortmund Fax: +49 (231) 755 3569
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~1999-03-09 15:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-03-09 15:33 Remove a PATH component Klaus Wacker
1999-03-09 15:57 ` Michael Barnes
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).