-   Linux - Newbie (
-   -   Scripting queries - Newbie (

LYC 09-17-2014 11:55 PM

Scripting queries - Newbie

I have a file containing a list of commands with argument, how to run the commands automatically?

Assuming the contents of file "command2run" are as follows:
ls -ls
ls -la
ls -L

I tried the following:
for i in `cat command2run`

The arguments were ran seperately instead of "ls -ls". Please advise?

Thanks in advance.

grail 09-18-2014 12:29 AM

Ok ... a few things:

1. Please use [code][/code] tags around code and data

2. Do not use a for loop to read a file as it will under go word splitting (which is why you see separate entries). Use a while loop

3. If you are looking to execute the items in the file you can source it, ie use source or . prior to file name on the command line

$ . command2run

LYC 09-18-2014 11:34 PM


I used . command2run but it just not able to go back to the command prompt after it finished. Not even I do and control-c.

SAbhi 09-19-2014 12:31 AM

Then use "source" Or a little help for you to use while to read a file:


while read line; do <do something here with $line>; done< input_filename

grail 09-19-2014 02:33 AM

Ok, not sure what to tell you as it works as described for me.

However, here are some assumptions I have made which may be incorrect:

1. Your standard shell is bash, to check:

$ echo $SHELL

2. Your file contains the following data:

$ cat command2run
ls -ls
ls -la
ls -L

3. When run I receive:

$ . command2run
total 16
12 -rwxr-xr-x 1 grail users 10444 17.09.2014 18:07 bashrc.tar.gz*
 4 -rwx------ 1 grail users    46 17.09.2014 18:28*
total 64
drwxr-xr-x 2 grail users  4096 17.09.2014 18:26 ./
drwxr-xr-x 4 grail users  4096 19.09.2014 14:22 ../
-rw------- 1 grail users 19679 14.09.2014 16:04 .bashrc
-rw------- 1 grail users 11025 14.09.2014 15:24 .bashrc_help
-rw------- 1 grail users  7828 14.09.2014 15:24 .bashrc_help.no_color
-rwxr-xr-x 1 grail users 10444 17.09.2014 18:07 bashrc.tar.gz*
-rwx------ 1 grail users    46 17.09.2014 18:28*

Obviously your output will be different

kaushalpatel1982 09-19-2014 06:49 AM

run it with sh command directly


sh command2run

All times are GMT -5. The time now is 02:45 PM.