I have a unix script in which I am calling functions. I want the function should return immediately if any of the command failed in between.
But checking $? after every command I can not do. Is there any other way to do this.
I have a unix script in which I am calling functions. I want the function should return immediately if any of the command failed in between.
But checking $? after every command I can not do. Is there any other way to do this.
On
This is another idea after my previous answer. It works with bash script and requires your functions to be quite simple (pipes may cause some issues):
#!/bin/bash
set -o monitor
check() {
[ $? -eq 0 ] && exit
}
trap check SIGCHLD
/bin/echo $(( 1+1 ))
/bin/echo $(( 1/0 ))
/bin/echo $(( 2+2 ))
Furthermore: functions need to be external command (this is why I use /bin/echo rather than echo). Regards.
Maybe running the script from a file line by line (as long of course as each of your functions are one line long).
Maybe the following script can be a starting point: