Open main menu

CDOT Wiki β

Changes

OPS245 Lab 2

1,168 bytes removed, 13:11, 1 September 2021
m
Part 3: Using the Command Line for VM Backup & Management: - removing sidebar on bash loops
|- valign="top"
|
{{Admon/tip|Bash Shell Scripting Tips:|<br>'''<u>Data Input</u>'''<br><ul><li>A shell script can obtain data from a number of methods: '''reading input files''', using '''arguments when issuing command''' (positional parameters), or '''prompting for data to store in a variable'''. The later method can be accomplished by using the '''read''' command.<br><br></li><li>Example:<br><br>''read -p "Enter your name: " userName''.<br><br></li></ul>'''<u>Mathematical Expressions</u>'''<br><ul><li>In shell scripting, data is stored in variable as text, not other data types (ints, floats, chars, etc) like in compiled programs like C or Java. In order to have a shell script perform '''mathematical operations''', number or variable need to be surrounded by two sets of parenthesis '''((..))''' in order to convert a number stored as text to a binary number.<br><br></li><li>Examples<br><br>''var1&#61;5;var2&#61;10''<br>''echo "$var1 + $var2 &#61; $((var1+var2))"''<br><br>'''Note:''' shell does not perform floating point calculations (like '''5/10'''). Instead, other commands like '''awk''' or '''bc''' would be required for floating point calculations (decimals)<br><br></li></ul><u>'''Loops (for / while / until)'''</u><ul><li>Determinant loops (such as '''for''' loops) usually repeat for a preset number of times (eg. counts, positional parameters stored). In-determinant loops (such as '''while''' or '''until''' loops) may repeat based on unknown conditions (like waiting for user to enter correct data).<br><br></li><li>Conditional statements '''&amp;&amp;''' (run if previous command or test is true) and '''&#124;&#124;''' (run is previous command or test is false) can also be used when testing multiple conditions.<br><br></li><li>Examples:<br>''set ops235 is fun''<br>''for x''<br>''do''<br>&nbsp;''echo "argument is $x"''<br>''done''<br><br>''for x in $(ls)''<br>''do''<br> &nbsp;''echo "Filename: $x"''<br>''done''<br><br>''read -p "enter a whole number: " num''<br>''until echo $num &#124; grep -q "^[0-9][0-9]*$"''<br>''do''<br> &nbsp;''read -p "Incorrect. Please enter WHOLE NUMBER: " num''<br>''done''<br><br>''read -p "pick a number between 1 and 10: " num''<br>''while [ $num -lt 1 ] &#124;&#124; [ $num -gt 10 ]<br>''do''<br> &nbsp;''read -p "Incorrect. Please pick number between 1 and 10: " num''<br>''done''<br><br></li></ul>}}
|}
932
edits