Grundläggande variabler i Bash

Introduktion till Bash-skriptning

Alex Scriven

Data Scientist

Tilldela variabler

Precis som i andra språk tilldelar du variabler med likhetstecknet.

var1="Moon"

Referera sedan med $-notation.

echo $var1
Moon
Introduktion till Bash-skriptning

Tilldela strängvariabler

Namnge din variabel fritt (välj något logiskt!):

firstname='Cynthia'
lastname='Liu'

echo "Hi there" $firstname $lastname
Hi there Cynthia Liu

Båda variablerna returnerades – snyggt!

Introduktion till Bash-skriptning

Saknad $-notation

Glömmer du $-notationen tolkas det inte som en variabel!

firstname='Cynthia'
lastname='Liu'
echo "Hi there " firstname lastname
Hi there firstname lastname
Introduktion till Bash-skriptning

(Felaktig) variabeltilldelning

Bash är inte förlåtande med mellanslag vid variabeltilldelning. Undvik mellanslag!

var1 = "Moon"
echo $var1
script.sh: line 3: var1: command not found
Introduktion till Bash-skriptning

Enkla, dubbla citattecken och backticks

I Bash kan olika citattecken betyda olika saker – både vid variabelskapande och utskrift.

  • Enkla citattecken ('sometext') = skalet tolkar innehållet bokstavligt
  • Dubbla citattecken ("sometext") = skalet tolkar bokstavligt utom $ och backticks

Det sista sättet skapar ett "skal i skalet", beskrivet nedan. Användbart för att anropa kommandoradsprogram. Det görs med backticks.

  • Backticks (`sometext`) = skalet kör kommandot och fångar STDOUT till en variabel
Introduktion till Bash-skriptning

Olika sätt att skapa variabler

Vi ser effekten av olika typer av variabelskapande

now_var='NOW'

now_var_singlequote='$now_var' echo $now_var_singlequote
$now_var
now_var_doublequote="$now_var"
echo $now_var_doublequote
NOW
Introduktion till Bash-skriptning

Programmet date

Programmet Date är användbart för att demonstrera backticks

Normal utdata från programmet:

date
Mon  2 Dec 2019 14:07:10 AEDT
Introduktion till Bash-skriptning

Skal i skalet

Vi använder ska-i-skalet nu:

rightnow_doublequote="The date is `date`."
echo $rightnow_doublequote
The date is Mon 2 Dec 2019 14:13:35 AEDT.

Programmet date anropades, utdata fångades och kombinerades inline med echo-anropet.

Vi använde ett skal i skalet!

Introduktion till Bash-skriptning

Parenteser vs. backticks

Det finns en motsvarighet till backtick-notationen:

rightnow_doublequote="The date is `date`."
rightnow_parentheses="The date is $(date)."
echo $rightnow_doublequote
echo $rightnow_parentheses
The date is Mon 2 Dec 2019 14:54:34 AEDT.
The date is Mon 2 Dec 2019 14:54:34 AEDT.

Båda fungerar likadant, men backticks är äldre. Parenteser används mer i moderna tillämpningar. (Se http://mywiki.wooledge.org/BashFAQ/082)

Introduktion till Bash-skriptning

Nu kör vi en övning!

Introduktion till Bash-skriptning

Preparing Video For Download...