Sponsored Content
Top Forums Shell Programming and Scripting Executing multiple child scripts - failing Post 302987307 by bakunin on Thursday 8th of December 2016 05:52:02 AM
Old 12-08-2016
+1 @RudiC!

When i write complex processing scripts where all sorts of things could go wrong i usually do it this way:

First, a list of commands that have to be executed (in case everything works perfectly). Let us say the list is:

Code:
cmd1 -a -b
cmd2 /bla/foo/bar
cmd3

Then i write the script like this:

Code:
if ! cmd1 -a -b ; then
     echo "Error executing cmd1 -a -b" >2&
     exit 3
fi

if ! cmd2 /bla/foo/bar ; then
     echo "Error executing cmd2 /bla/foo/bar" >2&
     exit 2
fi

if ! cmd3 ; then
     echo "Error executing cmd3"  >2&
     exit 1
fi

exit 0

Notice that the script will exit with a different error code depending on which command the script fails. Also notice that convention in UNIX is that a RC of 0 means "success" and everything else means varying reasons of failure. This is why the fi-construct (usually) works: a command succeeding in what it is suppsed to do will return 0 and therefore if ! cmd... will evaluate to false whereas a command not succeeding will return non-0 and if ! cmd... will return true triggering the then..fi.

I hope this helps.

bakunin
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Error trapping in parent/child scripts

Greets all. I'm using Slackware 12.0 with the bash shell. Calling my scripts with /bin/sh... I'm building gnome-2.18.3 and I have all my build scripts ready and working but I'm calling them from a parent script which executes each child/build script in a certain order (for loop). I have "set... (6 Replies)
Discussion started by: madpenguin
6 Replies

2. UNIX for Advanced & Expert Users

executing commands in child shell

I have to execute some commands after executing one command ( cleartool setview Tagname) Problem is that I write commands in script like this. echo "test1" cleartool setview tagname echo "test2" copy file1 file2 echo "test3" but when I execute script. Output --------- test1 If I... (1 Reply)
Discussion started by: udaykishore
1 Replies

3. Programming

parent not waiting until child complete executing another program through execl()

Hi, I am calling a program that greps and returns 72536 bytes of data on STDOUT, say about 7000 lines of data on STDOUT. I use pipe from the program am calling the above program. Naturally, I execute the above program (through execl() ) throught the child process and try to read the... (4 Replies)
Discussion started by: vvaidyan
4 Replies

4. Shell Programming and Scripting

multiple child scripts running in backgroud, how to use grep on the parent?

Hi I have a shell script A which calls another 10 shell scripts which run in background. How do i make the parent script wait for the child scripts complete, or in other words, i must be able to do a grep of parent script to find out if the child scripts are still running. My Code: ... (5 Replies)
Discussion started by: albertashish
5 Replies

5. Shell Programming and Scripting

Strange SIGINT propagation between Parent/Child sh scripts

Good day, I am trying to add signal handling capabilities to some of my scripts. Unfortunately, I am having some difficulty with the manner in which signals are propagated between parent/child processes. Consider the following example: I have the following "parent" script: #!/usr/bin/sh... (5 Replies)
Discussion started by: danie.ludick
5 Replies

6. Shell Programming and Scripting

Executing all scripts in /DIR except one

First i need to find all scripts directly under /DIR that end with ".sh" extension except "noallow.sh". That can be done with: find /DIR -maxdepth 1 -name "*.sh"|grep -v "noallow.sh" Now i want to run all the files output from the previous command. The following code: for filename in... (6 Replies)
Discussion started by: proactiveaditya
6 Replies

7. Shell Programming and Scripting

Script to read input and output files and child scripts

I have a directory where i have *.sas; *.pl;*.sh and *.c scripts I need to find out what are the child scripts and input output files for each script: say I have a shell script which calls a perl script and a sas script: In my first line I want I a) the parent script name; b) the... (1 Reply)
Discussion started by: ramky79
1 Replies

8. Solaris

ksh scripts failing with cannot execute error

Hi, All the scripts placed in /home/bin had 755 permissions. Sometimes scripts are failing with cannot execute errors. Let me describe a simple scenario. MasterScript.sh had 755 permissions. It is success most of the times. But, sometimes failing with cannot execute error. Really... (1 Reply)
Discussion started by: sureng
1 Replies

9. Shell Programming and Scripting

Opening Child Shell & Executing a script in the same context

Hi, Is the below possible (SHELL = tcsh)? -- I want to write an 'alias' something like this - alias set_my_work "setenv SOME_VAR;tcsh -i;source work_script.cshrc" The intention is to run this alias and enter a child shell, at the same time ensuring that the work_script.cshrc is source-ed.... (0 Replies)
Discussion started by: mishra.a.c
0 Replies

10. Shell Programming and Scripting

Executing multiple scripts using if condition

I have an if condition. If that condition is true then one script will be run and after that I need to check another condition based on the output value of first script. i tried like below : cd lock if ; then rm exitup if ; then kb_shutdown kb_startup if ; then rm exitup if ;... (3 Replies)
Discussion started by: charanarjun
3 Replies
source(3tcl)						       Tcl Built-In Commands						      source(3tcl)

__________________________________________________________________________________________________________________________________________________

NAME
source - Evaluate a file or resource as a Tcl script SYNOPSIS
source fileName source -encoding encodingName fileName | _________________________________________________________________ DESCRIPTION
This command takes the contents of the specified file or resource and passes it to the Tcl interpreter as a text script. The return value from source is the return value of the last command executed in the script. If an error occurs in evaluating the contents of the script then the source command will return that error. If a return command is invoked from within the script then the remainder of the file will be skipped and the source command will return normally with the result from the return command. The end-of-file character for files is "32" (^Z) for all platforms. The source command will read files up to this character. This restriction does not exist for the read or gets commands, allowing for files containing code and data segments (scripted documents). If you require a "^Z" in code for string comparison, you can use "32" or "u001a", which will be safely substituted by the Tcl interpreter into "^Z". The -encoding option is used to specify the encoding of the data stored in fileName. When the -encoding option is omitted, the system | encoding is assumed. EXAMPLE
Run the script in the file foo.tcl and then the script in the file bar.tcl: source foo.tcl source bar.tcl Alternatively: foreach scriptFile {foo.tcl bar.tcl} { source $scriptFile } SEE ALSO
file(3tcl), cd(3tcl), encoding(3tcl), info(3tcl) KEYWORDS
file, script Tcl source(3tcl)
All times are GMT -4. The time now is 05:39 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy