1#From: "Simon J. Gerraty" <sjg@zen.void.oz.au> 2#Message-Id: <199510091130.VAA01188@zen.void.oz.au> 3#Subject: Re: a shell idea? 4#Date: Mon, 09 Oct 1995 21:30:20 +1000 5 6 7# NAME: 8# add_path.sh - add dir to path 9# 10# DESCRIPTION: 11# These functions originated in /etc/profile and ksh.kshrc, but 12# are more useful in a separate file. 13# 14# SEE ALSO: 15# /etc/profile 16# 17# AUTHOR: 18# Simon J. Gerraty <sjg@zen.void.oz.au> 19 20# @(#)Copyright (c) 1991 Simon J. Gerraty 21# 22# This file is provided in the hope that it will 23# be of use. There is absolutely NO WARRANTY. 24# Permission to copy, redistribute or otherwise 25# use this file is hereby granted provided that 26# the above copyright notice and this notice are 27# left intact. 28 29# is $1 missing from $2 (or PATH) ? 30no_path() { 31 eval "case :\$${2-PATH}: in *:$1:*) return 1;; *) return 0;; esac" 32} 33# if $1 exists and is not in path, append it 34add_path () { 35 [ -d ${1:-.} ] && no_path $* && eval ${2:-PATH}="\$${2:-PATH}:$1" 36} 37# if $1 exists and is not in path, prepend it 38pre_path () { 39 [ -d ${1:-.} ] && no_path $* && eval ${2:-PATH}="$1:\$${2:-PATH}" 40} 41# if $1 is in path, remove it 42del_path () { 43 no_path $* || eval ${2:-PATH}=`eval echo :'$'${2:-PATH}: | 44 sed -e "s;:$1:;:;g" -e "s;^:;;" -e "s;:\$;;"` 45} 46