V prípade, že potrebujeme opakovane vykonať rozsiahlejšiu sevenciu príkazov je namiesto ich ručného zadávania užitočné vytvoriť si skript.
Skripty sú textové súbory obsahujúce príkazy v nejakom skriptovacom jazyku. Skripty môžme obvykle spustiť spustením príslušného interpretera a zadaním cesty k skriptu ako parametra.
Cvičenie Vytvorte si súbor s názvom
s1.sha vložte doňho nasledujúci riadok:
echo "Hello world!"
Cvičenie Následne skript spustite pomocou príkazu:
$> /bin/bash ./s1.sh Hello world!
V unixových systémoch je možné spúšťanie skriptov zjednodušiť pridaním nasledujúcej hlavičky na prvý riadok skriptu:
#!/cesta/k/interpretru [parametre...]
a pridaním prístupových práv na spustenie skriptu:
chmod u+x /cesta/k/skriptu
Cvičenie Skopírujte skript
s1.shdos2.sh.
$> cp s1.sh s2.sh
Cvičenie Pridajte do skriptu
s2.shhlavičku s cestou k interpretru/bin/bash, takze bude mať nasledovný obsah:
#!/bin/bash echo "Hello world!"
Cvičenie Pridajte si prístupové práva na spustenie skriptu
s2.sh:
$> chmod u+x ./s2.sh
Cvičenie Spustite skript
s2.sh:
$> ./s2.sh
![]() |
Poznámka |
|---|---|
Pri spúšťaní spustiteľných súborov, ktoré sú v adresároch,
ktoré nie sú vymenované v premennej |
Algoritmy implementované v skriptoch často bývajú parametrizované.
Pre priamy prístup k prvým deviatim parametrom implementuje bash
nasledujúce špeciálne premenné:
$0 - príkaz, ktorým bol skript spustený.
$1 - prvý argument zadaný pri spustení skriptu.
$2 - druhý argument.
$9 - deviaty argument.
$# - počet argumentov.
$@ - zoznam všetkých argumentov (okrem $0).
Cvičenie Vytvorte nový skript
s3.shs nasledujúcim obsahom:
#!/bin/bash echo $# echo 0:$0 echo 1:$1 echo 2:$2 echo 3:$3 echo 4:$4 echo 5:$5 echo 6:$6 echo 7:$7 echo 8:$8 echo 9:$9
Cvičenie Pridajte si prístupové práva na spustenie:
$> chmod u+x ./s3.sh
Cvičenie Spustite ho niekoľkokrát s rôznym počtom argumentov:
$> ./s3.sh $> ./s3.sh A B C $> ./s3.sh A B C D E F $> ./s3.sh A B C D E F G H I $> $PWD/s3.sh
Okrem získania hodnoty premennej alebo parametra umožňuje bash
nad ich hodnotami vykonávať jednoduché operácie. V nasledujúcich
odrážkach môže X byť názov premennej alebo číslo
od 0 po 9.
${X} - Alternatívny spôsob získania hodnoty
premennej.
${#X} - Dĺžka reťazca v premennej X.
${X:I} - Podreťazec z hodnoty premennej od indexu
I.
${X:I:N} - Podreťazec z hodnoty premennej od
indexu I s dĺžkou N.
${X#PREFIX} - Podreťazec z hodnoty premennej
bez reťazca PREFIX na začiatku.
${X%SUFFIX} - Podreťazec z hodnoty premennej
bez reťazca SUFFIX na konci.
${X/PATTERN/STRING} - Hodnota premennej kde je
vzor PATTERN nahradený reťazcom STRING.
Cvičenie Vytvorte skript
s4.shs nasledujúcim obsahom:
#!/bin/bash
echo $1_$2
echo ${1}_${2}
echo ${#1}
echo ${1:3}
echo ${1:2:2}
echo ${1#abc}
echo ${1%def}
echo ${1/cde/${2}}
Cvičenie Pridajte si prístupové práva a spustite ho:
$> chmod u+x ./s4.sh $> ./s4.sh abcdef xyz