This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
haas:spring2016:unix:projects:gfo0 [2016/04/12 12:26] – created wedge | haas:spring2016:unix:projects:gfo0 [2016/04/12 13:27] (current) – [Useful tools] wedge | ||
---|---|---|---|
Line 50: | Line 50: | ||
< | < | ||
[UNIX] 019 021 026 028 033 035 040 042 054 056 061 063 068 070 075 077 082 084 096 098 | [UNIX] 019 021 026 028 033 035 040 042 054 056 061 063 068 070 075 077 082 084 096 098 | ||
- | [dburns12] 019 021 026 033 035 040 042 054 063 068 070 075 077 084 096 098 | + | [username] 019 021 026 033 035 040 042 054 063 068 070 075 077 084 096 098 |
</ | </ | ||
Line 150: | Line 150: | ||
<cli> | <cli> | ||
- | lab46: | + | lab46: |
=============================================================================== | =============================================================================== | ||
- | UNIX uxi0 pbx0 cus0 pbx1 arc0 wpa0 udr0 sfp0 bns prjct+attnd+jrnal= result | + | UNIX uxi0 pbx0 cus0 pbx1 arc0 wpa0 udr0 sfp0 bns prjct+ptcpn+jrnal= result |
=============================================================================== | =============================================================================== | ||
username: 100 86 | username: 100 86 | ||
Line 159: | Line 159: | ||
</ | </ | ||
+ | NOTE that in the above, " | ||
+ | |||
+ | And note that the actual scores are left justified underneath the column heading listing the project name. | ||
+ | ====Bonus==== | ||
+ | As a bonus opportunity, | ||
+ | |||
+ | Despite how much automation I may have on the backend of things to generate all this data, there is still a considerable amount of manual interaction on my part (as much as I'd love to entirely script the process, evaluation still very much requires that human element), and that means there' | ||
+ | |||
+ | I will consider for bonus points the implementation of a " | ||
+ | |||
+ | =====Useful tools===== | ||
+ | By no means an exhaustive nor implied list, you may want to ensure familiarity with the following tools/ | ||
+ | |||
+ | * cat(1) | ||
+ | * bc(1) | ||
+ | * printf(1) | ||
+ | * echo(1) | ||
+ | * grep(1) | ||
+ | * head(1) | ||
+ | * tail(1) | ||
+ | * sed(1) | ||
+ | * cut(1) | ||
+ | * tr(1) | ||
+ | * wc(1) | ||
+ | * I/O redirection (found in bash(1)) | ||
+ | * variables/ | ||
+ | * command expansion (found in bash(1)) | ||
+ | * selection structures and evaluation facilities | ||
+ | * if statements (found in bash(1)) | ||
+ | * < | ||
+ | * loops (found in bash(1)) | ||
+ | * arrays (found in bash(1)) | ||
+ | |||
+ | Often times related and potentially useful commands you may want to know about can be found in the "SEE ALSO" section near the bottom of many manual pages. | ||
+ | |||
+ | There are some sample scripts available for viewing in the **scripts/ | ||
+ | |||
+ | ====bash debugging==== | ||
+ | If you add a **-x** argument to bash (in the shabang, or on the command-line if running your script that way), it will be immensely more verbose, reporting more precisely on its actions. This can prove most useful when trying to figure out various problems, be it syntax errors in your script or spurious logic errors. | ||
+ | =====Submission===== | ||
+ | Successful completion will result in the following criteria being met: | ||
+ | |||
+ | * When all is said and done, you will submit your script, which: | ||
+ | * runs the **status** tool and creates a snapshot of its output. Have your script process this snapshot vs. running **status** 20 million times during the run of your script (the data may change over time, but it isn't going to change that fast- cache the output to improve performance). | ||
+ | * should be an organized presentation of the requested information as specified above. | ||
+ | * spacing is important. I want to see column justification just like in my examples above. | ||
+ | * is functional, displaying no errors of any kind. | ||
+ | * utilizes shell logic prodominantly | ||
+ | * for those who can, do **not** write a C program that does it all; that doesn' | ||
+ | * use the various pattern matchers, filters, and text manipulation tools we've been playing with all semester (as well as new ones you find as you look for ways of performing this task). | ||
+ | * is WELL and CONSISTENTLY COMMENTED. | ||
+ | * and I don't just want to see "this is an if statement" | ||
+ | * is CONSISTENTLY INDENTED according to logic level (don't have everything riding the left margin, indent code inside if statments, loops, functions, etc.) | ||
+ | * see how this bulleted list is consistent and indented? | ||
+ | * no line exceeds 80 characters in width. | ||
+ | * the script should entirely automate the process; all you should have to do is run the script, and it will do all the work to output the necessary information. | ||
+ | |||
+ | ====Submit==== | ||
+ | Please submit as follows: | ||
+ | |||
+ | <cli> | ||
+ | lab46: | ||
+ | Submitting unix project " | ||
+ | -> mygrade.sh(OK) | ||
+ | |||
+ | SUCCESSFULLY SUBMITTED | ||
+ | lab46: | ||
+ | </ |