Examine the following script. Run it, then explain what it does. Annotate the script, then rewrite it in a more compact and elegant manner.
1 #!/bin/bash 2 3 MAX=10000 4 5 6 for((nr=1; nr<$MAX; nr++)) 7 do 8 9 let "t1 = nr % 5" 10 if [ "$t1" -ne 3 ] 11 then 12 continue 13 fi 14 15 let "t2 = nr % 7" 16 if [ "$t2" -ne 4 ] 17 then 18 continue 19 fi 20 21 let "t3 = nr % 9" 22 if [ "$t3" -ne 5 ] 23 then 24 continue 25 fi 26 27 break # What heppens when you comment out this line? Why? 28 29 done 30 31 echo "Number = $nr" 32 33 34 exit 0 |
---
A reader sent in the following code snippet.
1 while read LINE 2 do 3 echo $LINE 4 done < `tail -f /var/log/messages` |