Parsing ENV['PATH']

It works fine for me. Both with double/single quotes.

How does you initial string looks ?

in the “# do more stuff here” section, are you calling break ?

···

On Thu, 10 Apr 2003 17:46:45 +0000, Peter Ensch wrote:

What am I doing wrong here?

ENV[“PATH”].split(‘:’).each { |i|
puts i

do more stuff here

}

My PATH env. variable is a long list of ‘:’ separated
paths; however ENV[‘PATH’] only sees the first path.

So, the ‘split’ works fine, it’s the initial string I’m
splitting that is the problem.


Simon Strandgaard

Simon Strandgaard wrote:

What am I doing wrong here?

ENV[“PATH”].split(‘:’).each { |i|
puts i

do more stuff here

}

My PATH env. variable is a long list of ‘:’ separated
paths; however ENV[‘PATH’] only sees the first path.

So, the ‘split’ works fine, it’s the initial string I’m
splitting that is the problem.

It works fine for me. Both with double/single quotes.

How does you initial string looks ?

in the “# do more stuff here” section, are you calling break ?

What I’m trying to do is find the path to a certain program on my
system, like

@@cleartool = String.new(‘’)
ENV[“PATH”].split(‘:’).each { |path|
@@cleartool = “#{path}/cleartool” if
FileTest.exist?(“#{path}/cleartool”)
}

The problem is that ENV[‘PATH’] doesn’t contain what I expect. When I
run env in
my c shell, I get a line like this:

PATH=/home/pensch/apps/usr/local/bin:/home/pensch/apps/htmldoc/bin:/home/pensch/bin:/apps/java/j2re1.4.1_01/bin…

so splitting on ‘:’ I feel should get the paths I want. However, running
the script
on Solaris w/ C shell, ENV[‘PATH’] doesn’t contain this string

puts ENV[‘PATH’] prints ‘/home/pensch’

The same script on my Linux box (bash) gets the expected result.

I’m stumped. Any ideas?
P

···

On Thu, 10 Apr 2003 17:46:45 +0000, Peter Ensch wrote:


Peter Ensch,
pensch@ti.com A-1140 (214) 480 2333


“Peter B. Ensch” wrote:

> The problem is that ENV['PATH'] doesn't contain what I expect. When I > run env in > my c shell, I get a line like this: > > PATH=/home/pensch/apps/usr/local/bin:/home/pensch/apps/htmldoc/bin:/home/pensch/bin:/apps/java/j2re1.4.1_01/bin.... > > so splitting on ':' I feel should get the paths I want. However, running > the script > on Solaris w/ C shell, ENV['PATH'] doesn't contain this string > > puts ENV['PATH'] prints '/home/pensch' > > The same script on my Linux box (bash) gets the expected result. > > I'm stumped. Any ideas? > P

As to why your path appears to be incomplete I couldn’t tell you.
However, what you’re trying to accomplish sounds like the “which”
command. You can find File.which in the “ptools” package on the RAA, or
on RubyGarden as “FileWhich”.

Regards,

Dan