Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
path and += troubles
- X-seq: zsh-users 9707
- From: Steven Klass <sklass@xxxxxxxxxxxxxxx>
- To: zsh-users@xxxxxxxxxx
- Subject: path and += troubles
- Date: Fri, 25 Nov 2005 21:32:29 -0700
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
Hi all,
	OK after reading the FAQ completely I am at my wits end.  I want to  
create three basic functions dealing with arrays
		- Append
		- Prepend
		- Delete
	
	The basic usage would be something along the lines of let's say I  
had this nice array called path which looked like this:
	
	echo $path
		/usr/sbin	/bin	/foo	/usr/local/bin
Then I did ran a couple of functions..
		appendPath  path /bin
		prependPath path /sbin
		deletePath path /foo
and ended up with...
	echo $path
		/sbin /usr/sbin /usr/local/bin /bin
My basic functions would be:
	appendPath() {
		# if the path exists delete it..
		deletePath $1 $2
		# Append the path to the end..
		$1+=($2)
	}
	deletePath () {
  		# I cannot take credit for this - Borrowed from the net - but it  
works :)
		# I couldn't figure out how to use ${var#del}
		local element
  		local build
  		build=()
  		eval '
  			foreach element in "$'"$1"'[@]"
  			do
    				if [[ -d "$element" && "$element" != $2 ]]
    				then
      					build=("$build[@]" "$element")
    				fi
  			done
  			'"$1"'=( "$build[@]" )
  		'
	}
But THIS DOESN"T WORK!!!  IT Should!!  According to the FAQ += should  
add the path to the array.  Can someone help me with 2 things.
	1.  Why does += not work when adding to the array - It should right?
	2.  How will I handle prepend - I need to do a shift of all array items
Comments welcome thanks!!
---
Steven Klass
sklass@xxxxxxxxxxxxxxx
(480) 988-5657
Messages sorted by:
Reverse Date,
Date,
Thread,
Author