cp not executing in while read


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers cp not executing in while read
# 1  
Old 04-15-2008
cp not executing in while read

Hello, I am a newbie to Unix! I am having a problem trying to read in multiple values and constructing a copy command. It will work when reading in only 1 value from a file (testdata1), but there's an error when attempting to code for multiple values per line. Below are my 2 examples.

This copy command works fine....
Code:
while read userid                                                     
do                                                                    
        echo "Copy profile to" $userid                                
        copy_command="cp /u/test/.prf_common /u/$userid/.prf_test"   
        echo $copy_command                                            
        $copy_command                                                 
done < testdata1

This one returns an error...
Code:
IFS=","                                                              
while read userid name location                                      
do                                                                   
        echo "Copy profile to" $name "(" $userid ") at" $location    
        copy_command="cp /u/test/.prf_common /u/$userid/.prf_test"   
        echo $copy_command                                           
        $copy_command                                                
done < testdata2

error:
Code:
cpprf[7]: cp /u/test/.prf_common /u/abc/.prf_test:  not found.

testdata1
Code:
abc
def

testdata2
Code:
abc,Al Cooper,New York
def,Don Fields,Chicago

I'm Baffled?!!? Can someone steer me in the right direction here?

Thanks,
Andrew
# 2  
Old 04-15-2008
your problem is the IFS=",". use this:

Code:
IFS=","                                                              
while read userid name location                                      
do                                                                   
        echo "Copy profile to" $name "(" $userid ") at" $location    
        copy_command="cp /u/test/.prf_common /u/$userid/.prf_test"   
        echo $copy_command
        IFS=" "                                           
        $copy_command                                                
done < testdata2

hth,
DN2
# 3  
Old 04-15-2008
Thanks.
I needed one more line to reset IFS.

Code:
IFS=","                                                              
while read userid name location                                      
do                                                                   
        echo "Copy profile to" $name "(" $userid ") at" $location    
        copy_command="cp /u/test/.prf_common /u/$userid/.prf_test"   
        echo $copy_command
        IFS=" "                                           
        $copy_command                                                
        IFS=","                                           
done < testdata2

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Couldn't read packet: Connection reset by peer send: spawn id exp4 not open while executing

Hi All, I am having an issue with my script which I am using to get files from a remote server. In my script I am going to server:- REMOTESERVER and directory:- /Interface/Upload, and then getting files from there to my local server directory:- /ftp/jail_nextview_LMS/home/nextview_LMS/outbox. ... (1 Reply)
Discussion started by: Hero6438
1 Replies

2. Shell Programming and Scripting

[Bash] Read History function & Read Arrowkeys

Hi. How can I create a history function? (By "read" command or so) & How can I configure a read command so that the arrow keys are not displayed so funny? (^[[A) Thanks in advance. (4 Replies)
Discussion started by: sinnlosername
4 Replies

3. Shell Programming and Scripting

Read from file and execute the read command

Hi, I am facing issues with the below: I have a lookup file say lookup.lkp.This lookup.lkp file contains strings delimited by comma(,). Now i want to read this command from file and execute it. So my code below is : Contents in the lookup.lkp file is : c_e,m,a,`cd $BOX | ls cef_*|tail... (7 Replies)
Discussion started by: vital_parsley
7 Replies

4. Shell Programming and Scripting

Help with Bash piped while-read and a read user input at the same time

Hi I am new to writing script and want to use a Bash Piped while-read and read from user input. if something happens on server.log then do while loop or if something happend on user input then do while loop. Pseudocode something like: tail -n 3 -f server.log | while read serverline || read... (8 Replies)
Discussion started by: MyMorris
8 Replies

5. UNIX for Dummies Questions & Answers

When reading a csv file, counter to read 20 lines and wait for minute then read next 20 till end

Hello All, i am a newbie and need some help when reading a csv file in a bourne shell script. I want to read 10 lines, then wait for a minute and then do a reading of another 10 lines and so on in the same way. I want to do this till the end of file. Any inputs are appreciated ... (3 Replies)
Discussion started by: victor.s
3 Replies

6. Shell Programming and Scripting

Read input while executing the command

Hi everyone, i have made a very simple script where it reads the user input and converts the number from celcius to faranheit but instead of running the command and prompting the user for input I want to be able to simply enter a number at the end of the command to run the script. ex. instead of... (1 Reply)
Discussion started by: subway69
1 Replies

7. Shell Programming and Scripting

Read Embedded Newline characters with read (builtin) in KSH93

Hi Guys, Happy New Year to you all! I have a requirement to read an embedded new-line using KSH's read builtin. Here is what I am trying to do: run_sql "select guestid, address, email from guest" | while read id addr email do ## Biz logic goes here done I can take care of any... (6 Replies)
Discussion started by: a_programmer
6 Replies

8. Shell Programming and Scripting

How to read a multiple lines from a file n executing them?

Hi all, I am just trying to read the contents of a file. basically this file has a list of dat files. then i want to access these dat files n execute a script on them one by one using a loop. i hav e written like this ls -l | cut -c 58-88 > file1.txt while do arr1="$( sed -n '1p'... (7 Replies)
Discussion started by: navjyotisonu5
7 Replies

9. UNIX for Advanced & Expert Users

read() wont allow me to read files larger than 2 gig (on a 64bit)

Hi the following c-code utilizing the 'read()' man 2 read method cant read in files larger that 2gig. Hi I've found a strange problem on ubuntu64bit, that limits the data you are allowed to allocate on a 64bit platform using the c function 'read()' The following program wont allow to allocate... (14 Replies)
Discussion started by: monkeyking
14 Replies

10. Programming

Cannot read a file with read(fd, buffer, buffersize) function

# include <stdio.h> # include <fcntl.h> # include <stdlib.h> # include <sys/stat.h> int main(int argc, char *argv) { int fRead, fPadded, padVal; int btRead; int BUFFSIZE = 512; char buff; if (argc != 4) { printf ("Please provide all of the... (3 Replies)
Discussion started by: naranja18she
3 Replies
Login or Register to Ask a Question