I wonder if someone could help me here. I am trying to find a way of exiting from a loop but not exiting me from the script for example
hopefully youll get the general idea, i have a load of functions to perform for each item in my for loop, if they dont "pass" the first function, id like to not have to run through every subsequent function in the loop, id like it to quit there and move onto the next item in the for loop
I tried putting an "exit" and an "exit 0" into the fail criteria of the first function, but that quits me out of the whole script and not just that loop item,
Is there any way of doing this ?
Last edited by hcclnoodles; 11-26-2008 at 08:53 AM..
Thanks for the reply but whatever value of exit i give, it throws me out of the script completely
Quote:
Originally Posted by danmero
Replace exit by break
Thanks danmero, ive just tried this and it doesn't work, I'm not sure why because looking at examples on the web it seems as though it should do... I'm going to lay out my example code a little better here (because my functions are actually defined at the top of the script)
It seems the break is being ignored and moving on to the next function regardless
The break doesn't seem to be working, it will still go through all the functions sequentially for each loop item, it doesn't hit (for example) the fail condition of function1 and move on to the next loop item skipping the rest of functions for that one, it just echoes the fail message from function1, ignores the break and then moves on to function2
ok, ive done a bit of digging and it seems "continue" is the command im after to drop me out of the loop. However, the strangest thing has come to light....If i put my "continue" statement within my "if" statement within my "for" loop, then everything works as expected by throwing me out when there is a failure on the first "if" statement.... like this
Now that is exactly what I want, apart from the fact I have had to put what were externally defined functions, physically within the for loop.
If i define them outside of the for loop and call them in, the continue statement is ignored
so the following code doesnt work
I just dont understand why it works if i embed the code, but it doesnt if I define it as a function and call it in - what is the difference, arent functions treated as embedded code when they are called in ?????
I really would prefer to keep this function based as the code is a lot tidier
Is anybody able to explain to me why this happens....im stumped
Hi ,
I am processing some files using below shell script the problem for loop exit after processing some files even though it exist.After modifying file.txt and rerunning the script and its running .Any Advise
for i in `cat /xx/file.txt |tr -s "," '\n' ` ; do
echo $i... (3 Replies)
We are trying to design a flow so that an ETL job shouldn't start until the previous job completes. The script we have written is
while ; do sleep 2; done
The loop however exits even when the process is actually running. Why could this be happening? (12 Replies)
Hello all,
I have a problem when installing Solaris 10 on Enterprise 450.
I booted from dvd, then the installation was started. The error appeared after determining the installation method, F2-Standard, F?-Flash......
The error was Exiting signal 6.
Please, need help. Thank you (4 Replies)
Hi I am having a problem exiting a WHILE loop. I am on a Sun server using ksh.
I am running a Veritas Cluster Software (High Availablity) command to obtain a group status and grepping the command output for status "G" which means that the filesystem is frozen and therefore not available to... (3 Replies)
Hi,
I have a really simple script which I want to run forever, inside the loop it runs a C application which if it exits should restart.
#!/bin/sh
while true
do
./SCF scf.conf >> scf.log
sleep 2
done
For some reason the SCF C application coredumps and the script is exiting.... (3 Replies)
Hi my code looks like:
if test $STEP -le 10
then
.
.
ls -1d AM*-OUT|while read MYDIR
do
cd $MYDIR
ls |tail -n1| while read MYFILE
do
.
.
if test -s $MYFILE
then
sqlldr ....
rc=$?
if test $rc -ne 0 (3 Replies)
Greeting,
The following script completes after reading only one record from the input file that contains many records. I commented out the "ssh" and get what I expect, an echo of all the records in the input.txt file. Is ssh killing the file handle?
On the box "uname -a" gives "SunOS... (2 Replies)
All,
I'm having a problem w/this function. Specifically, I want to call another function (get_stats) when the process in the else completes (the initial if and the elsif seem to work fine). But what's happening is the get_stats function call is running after the else runs only once, NOT when it... (8 Replies)
I am running an Ubuntu Gutsy laptop with Advanced Compiz fusion options enabled. I am using xdotool to simulate keyboard input in order to rotate through multiple desktops.
I am looking for a way to kill a while true loop when the Enter key (or Control+C if it is easier) is pushed when the... (2 Replies)