
On Sat, Mar 28, 2015 at 01:44:01PM -0400, Tim Carroll wrote:
Sorry if this type of post does not belong here. I'm a newbie to the group! I would like to write a script like the following but using while loop instead of for. I'm hoping that a while loop with an if else in it would rerun an fsck on only the drives that returned "***** FILE SYSTEM WAS MODIFIED *****" not rerun it on all of them! The if else bit has me stumped though... somewhere I need a "if [ $? -eq 0 ]; then" Any help would be greatly appreciated.
Would something like this work: for fs in `cat fsck-list-new.txt`; do fsck -M $fs || fsck -M $fs done That way if the first fsck returns 0 (meaning no errors found), it is done, and otherwise it does another run. The -M prevents even trying if it is currently mounted (seems much better than your warning message). If the first fsck does find errors and corrects then, then it returns non 0 and hence another fsck is run. Not sure what you are actually trying to do. I think you are trying to make something more complicated than it has to be. -- Len Sorensen