From 9fe248e0dd6e9d337dac3ffc01a0985ec0684519 Mon Sep 17 00:00:00 2001 From: Jack-Benny Persson Date: Thu, 12 Dec 2013 22:17:37 +0100 Subject: [PATCH] =?UTF-8?q?Skrivit=20lite=20mer=20p=C3=A5=20rapporten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Labb4/laborationsrapport.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Labb4/laborationsrapport.md b/Labb4/laborationsrapport.md index c4fc2a6..56114f8 100644 --- a/Labb4/laborationsrapport.md +++ b/Labb4/laborationsrapport.md @@ -26,6 +26,30 @@ 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. +### Parameter Substitution / Expansion ## +Skillnaden mellan `echo ${Param:=Hej}` och `echo ${Param=Hej}` är att första exemplet, +d.v.s. där vi har kolon (:) så kommer "Hej" att skrivas om $Param är tom och inte satt (unset). Om vi skriver utan kolon å andra sidan så testas bara om $Param är tom. + +```bash +Me="" +echo ${Me=Yay} # Skriver inte ut något +echo ${Me:=Yay} # Skriver ut Yay samt säter $Mee till Yay +``` + +Det finns även andra operatorer förutom lika med (=). Nedan listas dessa med exempel +```bash +Me="" +echo ${Me-Yay} # Skriver inte ut något (eftersom Me är satt) +echo ${Me:-Yay} # Skriver ut Yay (men sätter INTE Me till Yay som med "=") + +Test10="Hej" +echo ${Test10:+Då} # Skriver ut Då, men lämnar $Test10 till "Hej" +unset Test10 +echo ${Test10:+Då} # Skriver inte något då $Test10 är unset + +echo ${Test20:?Missing} # Skriver ut "Missing" till standard error (STDERR) +``` + ### Övningar ### * [Övning 1](https://github.com/jackbenny/scripts_grundkurs/blob/master/Labb4/ovning1.sh) * [Övning 2](https://github.com/jackbenny/scripts_grundkurs/blob/master/Labb4/ovning2.sh)