Basisvariabelen in Bash

Introductie tot Bash-scripting

Alex Scriven

Data Scientist

Variabelen toewijzen

Net als in andere talen kun je variabelen toewijzen met het gelijkteken.

var1="Moon"

Verwijs daarna met $-notatie.

echo $var1
Moon
Introductie tot Bash-scripting

Stringvariabelen toewijzen

Noem je variabele zoals je wilt (wel iets zinnigs):

firstname='Cynthia'
lastname='Liu'

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

Beide variabelen zijn teruggegeven — nice!

Introductie tot Bash-scripting

De $-notatie missen

Mis je de $-notatie? Dan is het geen variabele!

firstname='Cynthia'
lastname='Liu'
echo "Hi there " firstname lastname
Hi there firstname lastname
Introductie tot Bash-scripting

(Geen) variabelen toewijzen

Bash is niet vergevingsgezind over spaties bij het maken van variabelen. Let op spaties!

var1 = "Moon"
echo $var1
script.sh: line 3: var1: command not found
Introductie tot Bash-scripting

Single, double, backticks

In Bash kunnen verschillende aanhalingstekens iets anders betekenen. Zowel bij maken als printen.

  • Enkele aanhalingstekens ('sometext') = Shell neemt de inhoud letterlijk
  • Dubbele aanhalingstekens ("sometext") = Shell neemt letterlijk behalve bij $ en backticks

De laatste manier creëert een 'shell-in-een-shell', hieronder uitgelegd. Handig om commandline-programma's aan te roepen. Dit doe je met backticks.

  • Backticks (`sometext`) = Shell voert het commando uit en vangt STDOUT op in een variabele
Introductie tot Bash-scripting

Verschillende variabelcreaties

Bekijk het effect van verschillende manieren om variabelen te maken

now_var='NOW'

now_var_singlequote='$now_var' echo $now_var_singlequote
$now_var
now_var_doublequote="$now_var"
echo $now_var_doublequote
NOW
Introductie tot Bash-scripting

Het date-programma

Het programma date is handig om backticks te tonen

Normale output van dit programma:

date
Mon  2 Dec 2019 14:07:10 AEDT
Introductie tot Bash-scripting

Shell in een shell

Gebruik nu de shell-in-de-shell:

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

Het date-programma is aangeroepen, output vastgelegd en inline gecombineerd met de echo-aanroep.

We gebruikten een shell in een shell!

Introductie tot Bash-scripting

Haakjes vs. backticks

Er is een equivalent van backticks:

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.

Beide werken hetzelfde, maar backticks zijn ouder. Haakjes worden vaker gebruikt in moderne toepassingen. (Zie http://mywiki.wooledge.org/BashFAQ/082)

Introductie tot Bash-scripting

Laten we oefenen!

Introductie tot Bash-scripting

Preparing Video For Download...