Hi there From reading the replays I don't think any one has mentioned that the first line of a script should tell the shell what shell the sripte was wrien for:
Code #!/bin/bash or #!/bin/sh or #!/bin/zsh or #!/bin/cash and so on: This tells the shell witch shell to run the script in and is important as each shell has some different commands commands and some difent ways of (this is a relay difficult word for me to spell) intertptering / passing things. Steve On 30 Nov 2009, at 12:36, Richard Forth wrote: > Ok possibly the shortest coding project I have undertaken... > > echo -n "Please enter filename or search criteria: " > read searchcriteria > files="`ls $searchcriteria`" > > add this to both files, and delete any hard coded lines for "searchcriteria=" > or "FILES=" > > enjoy! > 2009/11/30 Richard Forth <richard.fo...@gmail.com> > Thanks Malcolm, that worked a treat > > I also learned from the linuxformat forum that I need not have specified > $FILES as a variable at all, I could have just run: > > for f in *.sh > ... > > which did the same thing as > > FILES="`ls *.sh`" > for f in $FILES > ... > > Both work perfectly under Ubuntu AND CentOS. > > Furthermore, for anyone interested in this thread I now have two complete > scripts that compliment each other, the first generates all the MD5 hashes, > the second compares all the files with their corresponding hash files: > > = md5all.sh = > > FILES="`ls *.sh`" > > for f in $FILES > do > md5sum $f > $f.md5 > done > > =========== > > > and > > = md5checkall.sh = > > # Searches for $searchcriteria (line 6) and checks for an associated md5 > hash, and compares the md5sum with the value stored in the .md5 file. Gives a > Pass or a Fail. > > # variables for colors used in output text > red="\033[31m"; green="\033[32m"; reset="\033[0m"; yellow="\033[33m" > > # variables > searchcriteria="*.sh" > files="`ls $searchcriteria`" > > # main script > clear > echo "Checking md5sum(s) for all files matching: $searchcriteria." > echo "" > for f in $files > do > gethash="`md5sum $f`" > if [ -f $f.md5 ] > then > filehash="`cat $f.md5`" > else > echo -e "[$red FAIL $reset] $f >> $yellow Error: md5sum file not found. > $reset" > continue # skip rest of loop > fi > > if [ "$filehash" = "$gethash" ] > then > echo -e "[$green PASS $reset] $f" > else > echo -e "[$red FAIL $reset] $f >> $yellow Error: md5sum does not > match md5sum file. $reset" > echo "" > echo "FILE:`md5sum $f` ($f)" > echo "HASH:`cat $f.md5` ($f.md5)" > echo "" > fi > done > echo "" > ============== > > You could modify these scripts to prompt for a search criteria rather than > have the value hard coded into the files, that minght be my next little > project, anyway, if you find them useful, enjoy! > > Richard > Amateur Codemaster lol > 2009/11/28 Richard Forth <richard.fo...@gmail.com> > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Thanks Malc, I will try that on Monday. > > Malcolm Hunter wrote: > >> As posted on Linux Format User Forums: > >> > >> Basically I was experimenting in shell script and was trying to create a > >> useful script that took each file in the current directory (*.sh) and for > >> each file, create a MD5 hash and save that hash in a file of the same name > >> as the file (appended with a .md5 extension), so the basic script looked > >> something like this: > >> > >> *Code:* > >> FILES="*.sh" > >> for f in $FILES > >> do > >> md5sum $f > $f.md5 > >> done > >> > >> > >> Now, what is annoying is I have just run this at home on ubuntu (debian) > >> and > >> it has done the job as expected, however when I ran this on a test box at > >> work today running CentOS (RedHat) it kept putting ALL the MD5 hashes in > >> one > >> file called "*.sh.md5", whereas what I was expecting, and what I got on > >> Ubuntu, was say I had some files like so: > >> > >> *Code:* > >> shellscript1.sh > >> shellscript2.sh > >> > >> > >> after I run my script above in the current directory, and then run an "ls" > >> I > >> should get: > >> > >> *Code:* > >> shellscript1.sh > >> shellscript1.sh.md5 > >> shellscript2.sh > >> shellscript2.sh.md5 > >> > >> > >> Can anyone explain this deviant behaviour on Red Hat and give any tips > >> that > >> would allow the shellscript to work on either platform? > >> > >> Oh yes and if the code above is of any use you are welcome to it, and > >> modify/redistribute as you see fit. It was a test really as I am learning > >> "loops" at the moment and wondered if I could write a script that works > >> with > >> each file in a given folder. > > > > Using "*" gives unpredictable results depending on the context. Better to > > use the output of a command: > > > > LIST=`ls *.sh` > > > > Cheers, > > Malc > > > > - -- > ***** > Richard Forth > > Great Natural Health and wellbeing products > http://www.aloevera-crowland.co.uk/ > > > ================================ > Do you want to work from home? > Part-Time? Running your own business? > > Call me now to find out about opportunities > in your area 07870 897755. > ================================ > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.9 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iEYEARECAAYFAksRppwACgkQQ6xgmxzOp8nVMwCZAclLYq/a7vRzDVgLuskPdoyj > UXYAn2sdOBmtKBckkaKGbIv6ROOfBYHf > =2mD7 > -----END PGP SIGNATURE----- > > > > -- > ***** > Richard Forth > > For great natural health, nutrition, animal care and beauty products, visit > my online store: > > http://www.aloevera-crowland.co.uk > > To change your life and circumstances: > http://www.soaringteam.com/users/invite/MyVideoPage.php?Passcode=2118&src=38&v=3 > > Text OPPORTUNITY and your name to: > > 07870 89 77 55 > > > > > > > -- > ***** > Richard Forth > > For great natural health, nutrition, animal care and beauty products, visit > my online store: > http://www.aloevera-crowland.co.uk > > To change your life and circumstances: > http://www.soaringteam.com/users/invite/MyVideoPage.php?Passcode=2118&src=38&v=3 > > Text OPPORTUNITY and your name to: > > 07870 89 77 55 > > > > _______________________________________________ > Peterboro mailing list > Peterboro@mailman.lug.org.uk > https://mailman.lug.org.uk/mailman/listinfo/peterboro
_______________________________________________ Peterboro mailing list Peterboro@mailman.lug.org.uk https://mailman.lug.org.uk/mailman/listinfo/peterboro