![]() |
A simple script to execute a command package
Hi folks,
I'm prepared to write a simple script to execute 20+ commands and could not figure out how to make use of "loop" subject to certain conditions. If without conditions :
#!/bin/bashIt will be a long script. Please advise how to apply "loop" to shorter the script executing all command subject to following conditions 1) All commands except cmd3 should have no output. If there is any it needs to confirm either to continue OR to exit the shell 2) cmd3 should have "/mnt/lfs" output. If no output OR empty output the shell should exit, not continue executing further commands TIA satimis |
Not really sure what you're going for here, but the number of lines required to initialize 20 variables and loop through them is greater than the number of lines required to simply list 20 commands... maybe I'm missing something :confused:
|
I'm guessing, from the wording ("full/exact command") that the idea is that the commands stored in the variables can be edited to adjust the behaviour of the script (kind of like setting CFLAGS etc. in a makefile).
I'm not a great bash guru, but it sounds like what you would really benefit from is a small subroutine (one that executes the command, checks for any output, and prompts as necessary). If you need information about functions, see http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-8.html or the bash manpage. You could also use a loop to iterate over your values, but not if they're in simple scalar variables. Bash does support arrays, though (http://www.faqs.org/docs/bashman/bashref_71.html); you could loop over the array quite easily with a C-style for loop (http://www.tldp.org/LDP/abs/html/loops1.html introduces looping). I'm not exactly a bash expert myself, as I say, but hopefully that helps you. |
Hi folks,
Tks for your advice. Sorry for not posting more detail on my 1st message. I'm prepared to write a simple shell scripts executing following commands automatically. There are 25 commands to be executed in following sequence :
export LFS=/mnt/lfsIn normal circumstance there is no output on all commands except command-4 with "/mnt/lfs" as output. If not considering the output it will be quite simple just listing all commands on a shell script. Now I expect to arrange the script as follows; 1) The script will automatically continue to execute command-5 if the output of command-4 is "/mnt/lfs" satisfying the condistion otherwise exit the shell. 2) If there is an output on any command excluding command-4 it needs to confirm "yes/no" with the corresponding command displayed on the terminal. 'yes" will continue on next command. "no" will exit the shell stopping the script. I'm considering whether shell script or perl script will do the job better. If shell script then how to start. If perl script then how to start. Which module/modules will be appropriate to apply, TIA B.R. satimis |
| All times are GMT -5. The time now is 4:19 PM. |
Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC