Read from file and execute the read command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Read from file and execute the read command
# 1  
Old 09-05-2013
Question 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 :
Code:
c_e,m,a,`cd $BOX | ls cef_*|tail -1`,/home/me

In my shell script I read it as :
Code:
$(cat lookup.lkp | grep c_e | cut -d ',' -f4)

So above command should pick up
Code:
`cd $BOX | ls cef_*|tail -1`

which it does....but the command does not return the file name starting with cef_some_name even though there are files which match the wildcard.
Instead it quits using no such file or directory.

How can I execute this.Any help appreciated.

Last edited by Scrutinizer; 09-05-2013 at 04:30 PM.. Reason: code tags
# 2  
Old 09-05-2013
Try:
Code:
eval $(cat lookup.lkp | grep c_e | cut -d ',' -f4)

# 3  
Old 09-05-2013
Quote:
Originally Posted by bartus11
Try:
Code:
eval $(cat lookup.lkp | grep c_e | cut -d ',' -f4)

Hi,
Thanks for the reply.

But the above code does not help.
It gives the below error :

Code:
ls: cef_*: No such file or directory

Can you please help me out.
# 4  
Old 09-05-2013
Two things to change in your lookup file:
a) don't pipe the cd $BOX to the next statement as it doen't make sense - cd has no output and ls doesn't read stdin.
b) strip the backticks off that entire command list; they make it try to execute the result of the ls, which is some cef_* file which is not executable.

Try sth like
Code:
c_e,m,a,cd $BOX ; ls cef_*|tail -1,/home/me

in the lookup file.
# 5  
Old 09-05-2013
Quote:
Originally Posted by RudiC
Two things to change in your lookup file:
a) don't pipe the cd $BOX to the next statement as it doen't make sense - cd has no output and ls doesn't read stdin.
b) strip the backticks off that entire command list; they make it try to execute the result of the ls, which is some cef_* file which is not executable.

Try sth like
Code:
c_e,m,a,cd $BOX ; ls cef_*|tail -1,/home/me

in the lookup file.
If the intention is to not run the ls cef_*|tail -1 if the cd $BOX failed, then use
Code:
cd $BOX && ls cef_*|tail -1

# 6  
Old 09-08-2013
Hi Thanks for the replies.
But i have been getting the same error.
So in my lookup i have mentioned as
Code:
echo /a/b/c/box/$(ls -rt /a/b/c/box|grep -i cef |tail -1)

and to get this above stmt to execute and assign to ftf is :
Code:
ftf=$(eval $(cat $file_path | grep -i $STR | cut -d '*' -f4))

This is working for me....but as you can see in my lookup file i have hardcoded the path.
So the issue remains I have to parametrize this value.

Which could be :
Code:
echo $(ls -rt $BOX |grep -i cef |tail -1)

But this $BOX don't seem to resolve.I even tried \$BOX to resolve.
But it doesnt seem to resolve the value.

Can anyone please suggest some solution.
# 7  
Old 09-08-2013
You lost me - sorry. What's the result of cat $file_path | grep -i $STR | cut -d '*' -f4?
Why don't you execute the relevant part of your code with the xtrace option on and post the result?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Du command not able to read file.

hi when i am trying to check the file size using du command in shell script but getting a below error, although the file is present du: cannot access `LOGS_18-08-20.tar.gz': No such file or directory below is snippet of script cd /home dt=$(date --date="yesterday" +"%y-%m-%d") du ... (3 Replies)
Discussion started by: scriptor
3 Replies

2. Shell Programming and Scripting

Other user should not read the file but can execute

Hi, I have one script for which I want that other user should not read the script file but can execute. Is there any method ? I tried by giving 711 but it gives Permission denied to other users. For Generic User id as a work around , I have created alias in .bashrc file and other user... (4 Replies)
Discussion started by: Amit Joshi
4 Replies

3. Shell Programming and Scripting

Process to read a new file entry and execute a command

I need to develop a process/daemon which will constantly monitor a file for new entry and execute a command. for eg, there is a file /var/log/inotify.log When a new entry like below gets appeneded to this file, execute the command as follows. /home/user/public_html/bad.php|CREATE ... (2 Replies)
Discussion started by: anil510
2 Replies

4. Shell Programming and Scripting

Read line by line and execute command

Hi ALL, I have a requirement like this. 1.GET ALL TABLE NAME (just table name) keep in file 2.Read line by line and get the count of table from tablename files. tablename detail has a sql statement "db2 select tabname from syscat.tables" (1 Reply)
Discussion started by: netdbaind
1 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

How to read a file line by line and store it in a variable to execute a program ?

Hello, I am quite new in shell scripting and I would like to write a little scritp to run a program on some parameters files. all my parameters files are in the same directory, so pick them up with ls *.para >>dirafter that I have a dir file like that: param1.para param2.para etc... I... (2 Replies)
Discussion started by: shadok
2 Replies

7. Shell Programming and Scripting

How to execute commands read from another file?

Please help with this simple example. I can not figure out how to do it. A file named “job” contains only this one line:var=5I need a script to read the job file and execute it as a command. This is my attempt (it does not work):#!/bin/sh exec < job echo "var = $var"output should read “var = 5”... (5 Replies)
Discussion started by: wolfv
5 Replies

8. 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

9. Shell Programming and Scripting

the shell not pause when execute read command

Hi, i facing a problem when run the script below.. while do if then printf "Please enter a name : " read response # the problem occur here if then ea_ident=${omc_ident} else # # Check that name does not contain invalid... (14 Replies)
Discussion started by: neruppu
14 Replies

10. Shell Programming and Scripting

File read & execute problem

Hi folks, Need your help. I am writing a KSH script to read a few commands from a file & execute. I am using the following code to read the file line by line & excute each command. When I am printing each line I see it is printing properly but while excuting, the particular "ps" command... (5 Replies)
Discussion started by: tipsy
5 Replies
Login or Register to Ask a Question