Gjort första övningen på labb 4
This commit is contained in:
parent
e2bf2d8415
commit
1a2d33a757
@ -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
24
Labb4/ovning1.sh
Executable 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
|
Loading…
x
Reference in New Issue
Block a user