Sponsored Content
Top Forums Shell Programming and Scripting Script to run command one by one Post 302793741 by misterx12345 on Saturday 13th of April 2013 12:17:00 PM
Old 04-13-2013
Thx Don for your quick reply.
Yes, I am using the bash, but should I use something else to run the commands?
I did run your script, but it didn't do anything.
Didn't get an error and no output files.
Seems like it didn't do anything.


Quote:
Originally Posted by Don Cragun
The script that you suggested will overwrite the output of all previously executed scripts with the output of the last script to run. The wait commands in your script don't do anything. (You didn't start the cmd* scripts asynchronously and it wouldn't make any difference if you did.) If you have some long running cmd* scripts, run this shell script in the background; not the jobs started by the script. You might want to try something like:
Code:
#!/bin/bash
i=1
while [ -f cmd$i ]
do      sh cmd$i > cmd$i_stdout.txt 2> cmd$i_stderr.txt
        i=$((i + 1))
done

Note that you specified that this is a bash script, but you're executing the cmd* scripts using sh (rather than bash). If the scripts to be run are executable scripts, you could omit the "sh" in red in the above script and let a #! line in each script specify the shell to be used for any script that doesn't want to use the system's default shell. This script will run any number of cmd* scripts as long as their names have consecutive integer values (starting with "1") at the ends of the names.

PS I didn't notice that you had used >> instead of > for later jobs, so you won't be overwriting the output. You may still want to consider the redirection methods shown above to separate stdout and stderr for each script into separate files. I also skipped the echoes you had showing the progression of scripts being executed. If you want them, I assume you know where to add them. (If not; let me know.)
---------- Post updated at 08:17 AM ---------- Previous update was at 07:33 AM ----------

Apologies, your command does work.
thx very much !!
but is it also possible to echo which command is going to run and date in front of every command in the log file?


Quote:
Originally Posted by Don Cragun
The script that you suggested will overwrite the output of all previously executed scripts with the output of the last script to run. The wait commands in your script don't do anything. (You didn't start the cmd* scripts asynchronously and it wouldn't make any difference if you did.) If you have some long running cmd* scripts, run this shell script in the background; not the jobs started by the script. You might want to try something like:
Code:
#!/bin/bash
i=1
while [ -f cmd$i ]
do      sh cmd$i > cmd$i_stdout.txt 2> cmd$i_stderr.txt
        i=$((i + 1))
done

Note that you specified that this is a bash script, but you're executing the cmd* scripts using sh (rather than bash). If the scripts to be run are executable scripts, you could omit the "sh" in red in the above script and let a #! line in each script specify the shell to be used for any script that doesn't want to use the system's default shell. This script will run any number of cmd* scripts as long as their names have consecutive integer values (starting with "1") at the ends of the names.

PS I didn't notice that you had used >> instead of > for later jobs, so you won't be overwriting the output. You may still want to consider the redirection methods shown above to separate stdout and stderr for each script into separate files. I also skipped the echoes you had showing the progression of scripts being executed. If you want them, I assume you know where to add them. (If not; let me know.)
 

10 More Discussions You Might Find Interesting

1. Solaris

I want to run a script or command on other server

Hi all, I have done ssh-keygen to two servers in work place and given there entry for authorized_keys. I m able to ssh to other servers without asking password. But i face problem while trying to run a command or script on other server. It is throwing an Error. $ ssh... (4 Replies)
Discussion started by: naree
4 Replies

2. Shell Programming and Scripting

Why Does Command Run From Prompt But Not From Script?

I hope someone can shed any light on this mystery. I am trying to run the following command: su userID -c remsh server -l userid -n "awk -F^ '\$4 == \"SMITH\"' /tmp/infromational/version74b/LIVE/TEMPORARY/ABCfiles/HLC_Database_File.bat|head -1" > /tmp/variant/45BV32/var/store13.logfnd I... (15 Replies)
Discussion started by: Korn0474
15 Replies

3. Shell Programming and Scripting

Need help! command working ok when executed in command line, but fails when run inside a script!

Hi everyone, when executing this command in unix: echo "WM7 Fatal Alerts:", $(cat query1.txt) > a.csvIt works fine, but running this command in a shell script gives an error saying that there's a syntax error. here is content of my script: tdbsrvr$ vi hc.sh "hc.sh" 22 lines, 509... (4 Replies)
Discussion started by: 4dirk1
4 Replies

4. Shell Programming and Scripting

Getting script to run after ftp command

Hi I, essentially have two parts in my script. The first ftp's to server S10 and retrieves a batch of files. The second part does the crunching and arranging, They both work independently but when run all in sam script I cannoy get 2nd part to run, i.e. the cat, cut & sed. I think it may be... (10 Replies)
Discussion started by: rob171171
10 Replies

5. UNIX for Dummies Questions & Answers

Script to run a command in a new terminal

Hey, I am trying to write a script that will open all of my session windows, and then secure shell into the appropriate server in the new windows. Seems simple, but I cant get it to work! Please help! :confused: (1 Reply)
Discussion started by: sojo1024
1 Replies

6. Shell Programming and Scripting

script will not run cp command

Hi, Not sure what the issue is here, but when i run the script. A simple copy command, it does not find the cp command ? See scrpt below : #!/bin/sh set -x ############################################# # Backup Processes #... (4 Replies)
Discussion started by: venhart
4 Replies

7. Shell Programming and Scripting

Run command in background thru script

Dear All, Writing a script in which I want to run a command in background and keep it running even script is finished. I have tried like below, `truss -p <pid> >> & /tmp/log &` But doesnt work.. script goes running and nothing in log file. (7 Replies)
Discussion started by: Deei
7 Replies

8. Shell Programming and Scripting

run command in a script shell

Hello, Please i'd like to run command in a script shell , how can i do ? here my commands : cd blcr-build // run command in this rep sudo insmod ./blcr_imports/kbuild/blcr_imports.ko //root sudo insmod ./cr_module/kbuild/blcr.ko //root Thank you. (1 Reply)
Discussion started by: chercheur857
1 Replies

9. Shell Programming and Scripting

Script for telnet and run one command kill it and run another command using while loop

( sleep 3 echo ${LOGIN} sleep 2 echo ${PSWD} sleep 2 while read line do echo "$line" PID=$? sleep 2 kill -9 $PID done < temp sleep 5 echo "exit" ) | telnet ${HOST} while is executing only command and exits. (5 Replies)
Discussion started by: sooda
5 Replies

10. Shell Programming and Scripting

Run script like command

hello i have write a script which can create username + password #!/bin/bash # Script to add a user to Linux system if ; then read -p "Enter username : " username read -s -p "Enter password : " password egrep "^$username" /etc/passwd >/dev/null if ; then... (3 Replies)
Discussion started by: nimafire
3 Replies
All times are GMT -4. The time now is 04:18 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy