Problem iterating through PATH entries with spaces


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problem iterating through PATH entries with spaces
# 1  
Old 05-14-2010
Problem iterating through PATH entries with spaces

I have a Bash script on Cygwin that tries to iterate through the directory entries in PATH. I need to convert the PATH value to a form that I can iterate through with "for var in $list; do".

For instance, an excerpt from my PATH value is this:

:/c/Program Files/Windows Imaging/:/c/Program Files/MySQL/MySQL Server 5.1/bin

I need to somehow coerce this into something I can iterate through, where each original PATH entry goes into a variable.

I tried replacing " " (space) with "\ " (escaped space). That seems correct, but I also have to replace ":" (colon) with " " (space). I also tried replacing ":" with "\n", but that doesn't seem to help. Inside the "for" loop, the value of "var" never includes the full directory name, it always breaks at spaces in the names.

---------- Post updated at 04:40 PM ---------- Previous update was at 04:22 PM ----------

Duh. Never mind. I discovered "IFS=$':'". Very simple.
# 2  
Old 05-14-2010
Code:
$ echo ":/c/Program Files/Windows Imaging/:/c/Program Files/MySQL/MySQL Server 5.1/bin" | tr ":" "\n" | sed '/^$/d' | while read line; do
> echo "$line"
> done
/c/Program Files/Windows Imaging/
/c/Program Files/MySQL/MySQL Server 5.1/bin
$

Please let me know if this would have worked for you?
# 3  
Old 05-14-2010
Make an array
Code:
declare -a arr
arr=$(echo $PATH | tr -s ':' ' )

Code:
echo $PATH | awk -F: '{ for (i=1; i<=NF; i++) {print $i}}' |
while read fname
do 
# something
done

Code:
oldIFS="$IFS"
IFS=':'
for i in $PATH
do
    
    echo $i
done 
IFS="$oldIFS"

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Proper way to use a path with spaces in the directory name

I am using the below bash loop: or f in /media/cmccabe/My Book Western Digital/10_29and30_2015/*.bam ; do bname=`basename $f` pref=${bname%%.bam} samtools view -H $f | sed '/^@PG/d' | samtools reheader - $f > /home/cmccabe/Desktop/NGS/${pref}_newheader.bam done is the... (1 Reply)
Discussion started by: cmccabe
1 Replies

2. Shell Programming and Scripting

Bash script not parsing file with spaces in path

Hi everyone, I'm trying to write my first ever shell script, the OS is Raspbian. The code I have written must be executed whenever a certain database has been modified. The database resides on a Windows server to which I have a mount point, and I have no control over the Windows server at all so... (2 Replies)
Discussion started by: gjws
2 Replies

3. Shell Programming and Scripting

Set problem with spaces

#### ~]$ set "hello 'cat dog walk' money elephat" #### ~]$ echo $* | awk '{print $2}' 'cat why is the second command above showing only "'cat ? shouldn't the output be: 'cat dog walk' how can i fix this so it gives me the chosen column in its entirety? (11 Replies)
Discussion started by: SkySmart
11 Replies

4. Shell Programming and Scripting

Conduct a search or test -f over a path with spaces

I am organizing my music library on a NAS server. I want to print a list of all the directories that are missing the cover art (at least one or more jpeg file). I have successfully created a file with each line containing the path to each occurance of one or more .mp3 files. That path is also... (2 Replies)
Discussion started by: godfreydanials
2 Replies

5. Shell Programming and Scripting

Problem with spaces in the path

Hi all, I have a variable test has the following value assigned.. could you please help on doing cd or ls to the value in the varible ... $echo $test /bdm/sdd/compounds/AD4833XT/requests/clin/Watson_20090420/docs/MHRA\ Comments\ \&\ Responses $cd $test ksh: cd: bad argument count $cd... (3 Replies)
Discussion started by: firestar
3 Replies

6. Shell Programming and Scripting

problem with spaces in filename

I have written a script to run ddrescue on a list of files. #!/bin/bash # # A script to rescue data recursively using ddrescue. srcDir=/damaged/hdd/movies/ #the source directory desDir=/new/hdd/movies/ #the destination directory... (2 Replies)
Discussion started by: colsinc
2 Replies

7. Shell Programming and Scripting

iterating over results from sqlplus

hi all, i am writing a ksh script, i am logging into an oracle db via sqlplus and running a select statement but i dont know how i can store the results from the sql so i can iterate over it and do more operations over it. I dont want to write a stored procedure with a cursor since i need to... (2 Replies)
Discussion started by: cesarNZ
2 Replies

8. Shell Programming and Scripting

Problem iterating in while loop

I am facing a problem in replacing the file contents by iterating through the list. My present code: Code: #!/bin/bash# TFILE="/tmp/vinay/testb_1.txt" while read linedo aline="$line" echo $aline code=`echo $aline|cut -d ',' -f1` country=`echo $aline|cut -d... (5 Replies)
Discussion started by: av_vinay
5 Replies

9. UNIX for Dummies Questions & Answers

Problem with spaces in directory path

Hi Gurus, I have a requirement. cat /usdd/Sample/"NDDF Plus DB"/"NDDF Descriptive and Pricing"/"NDDF BASICS 3.0"/"Pricing"/1.txt | sed 's/*|*/|/g' | sed 's/^*//'| sed 's/^*//; s/*$//' > temp.txt In unix prompt the above command is reading the file 1.txt and I am... (1 Reply)
Discussion started by: prabhutkl
1 Replies

10. UNIX for Dummies Questions & Answers

cc path problem - no acceptable path found

Hello everyone, I'm a unix noob. I have a powerbook running mac os x 10.4 and for one of my classes I need to install the latest version of php (5.0.5). I'm following the instructions at http://developer.apple.com/internet/opensource/php.html to install but I've run into a problem. The... (2 Replies)
Discussion started by: kendokendokendo
2 Replies
Login or Register to Ask a Question