Gjort första övningen på labb 4

This commit is contained in:
Jack-Benny Persson 2013-12-11 20:10:48 +01:00
parent e2bf2d8415
commit 1a2d33a757
2 changed files with 34 additions and 0 deletions

View File

@ -27,8 +27,18 @@ echo $Summa # Svaret blir 1, efter 3*3=9+1=10, alltså resten är 1.
Istället för `let` kan man instället skriva `Summa=$((4+4)); echo $Summa` och vi får svaret 8.
### Övningar ###
* [Övning 1](https://github.com/jackbenny/scripts_grundkurs/blob/master/Labb4/ovning1.sh)
## Reflektion ##
En lösning på problemet med att Bash bara räknar med int är att istället använda `bc` (Bench Calculator) istället för `let` i Bash.
Observera dock här att `bc` inte heller räknar mer än int (heltal) som standard. T.ex. så blir `echo "10/3" | bc` också 3. Tricket här att är att ställa in __scale__ variablen till `bc`. T.ex. så blir `echo "scale=3;10/3" | bc` helt korrekt 3.33.
En annan cool sak som stod i laborationen var det om Variable Substution. Att kunna tilldela en variabel ett specifikt värde om den är tom, t.ex `Variabel=""; echo ${Variabel:=test}.
Att kunna byta ut strängar i variabler är också en häftig funktion och väldigt "sed lik". T.ex. nedanstående kodstycke
```bash
Var="Hej alla glada"
Var=${Var/glada/sura}
echo $Var # "Hej alla sura" skrivs ut
```
Att kunna söka efter variabler är också trevligt, typ `echo ${!U}` som kommer att matcha t.ex. UID och USER.

24
Labb4/ovning1.sh Executable file
View File

@ -0,0 +1,24 @@
#!/bin/bash
# Jack-Benny Persson
# LX13
# Övning 1, labb 4
# Get user input
read -p "Enter first number: " Tal1
read -p "Enter second number: " Tal2
# Do the calulations
Add=$((Tal1+Tal2))
Sub=$((Tal1-Tal2))
Tim=$((Tal1*Tal2))
Div=$((Tal1/Tal2))
Mod=$((Tal1%Tal2))
# Print the calulcations and answers
echo "$Tal1 + $Tal2 = $Add"
echo "$Tal1 - $Tal2 = $Sub"
echo "$Tal1 * $Tal2 = $Tim"
echo "$Tal1 / $Tal2 = $Div, rest: $Mod"
exit 0