On Sat, 28 Mar 2015, Lennart Sorensen wrote:
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
It will only work if there are no spaces in the file; otherwise $fs
will be assigned to each word in the file, not each line. This is
almost always the wrong way to read a file. Not to mention the UUOC.
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.
--
Chris F.A. Johnson, <http://cfajohnson.com>
---
Talk Mailing List
[email protected]
http://gtalug.org/mailman/listinfo/talk