Bash scripty jsou nedílnou součástí znalostí operačního systému Linux. Jedná se o textový “skriptový” zápis kódu, který vykonává příkazy příkazového řádku. Tedy všechny příkazy, které lze použít v příkazovém řádku, lze zde používat také, navíc jsou jen ty příkazy, které umožňují práci se skriptem.
Základní nutný požadavek je mít vytvořený textový soubor, s příkazy, které se budou vykonávat. Jak již víme z Linuxu, není třeba mít soubor s koncovkou. Je však dobré mít soubory s koncovkami pro přehlednost. Pro Bash scripty se používá souborů s koncovkou .sh, tedy například run.sh
.
Skriptům dáváme práva x pokud chceme aby byly spustitelné bez příkazu sh
před scriptem. V takovém případě lze spouštět skript příkazem třeba ./script-name *{parametry}*
.
Skripty Bash začínají příkazem shebang. Shebang je kombinace znaků bash # a bang ! následovaná cestou k shellu bash. Jedná se o první řádek skriptu. Shebang říká shellu, aby jej spustil prostřednictvím shellu bash. Shebang je jednoduše absolutní cesta k interpretu bash. Lze nastavit i jiné shelly než bash, bash je však nejčastější.
#!/bin/bash
# Tento řádek by měl být vždy v každém scriptu.
# zde následuje další část scriptu, tyto části jsou popsány niže
sh *{script} {parametry}*
- spustí script který jsem zadal
Parametry jsou vložené hodnoty za název scriptu, každý parametr je oddělen mezerou.
Parametry získáváme ve scriptu přes $1 $2 .. případně pokud bude větší než 9 tak přes ${13}, ${15}…
$0
- název skriptu
$#
- počet zadaných parametrů
$*
- param jako jedno slovo
$@
- zopakuje co jsem zadal
$$
- napíše PID procesu který spustil script
shift
- příkaz - posouvá parametry $3 > $2 >…
#!/bin/bash
echo Vývejte ve scriptu
echo Název scriptu je: $0
echo Jako první parametr je zadáno: $1
# Toto je komentář
Proměnné se zapisují pomocí příkazu =
, tímto příkazem se uloží data do paměti pod konkrétní název. Proměnné se dají takto použít i v příkazovém řádku přímo, avšak existují pouze v tomto spuštěném příkazovém řádku.
#!/bin/bash
**company=ORBIS
echo Studuji $company $2 a jsem $1.**
Alternativní příkaz set
slouží pro nastavení dat do jednotlivých parametrů.
set $(date)
- v závorce může mít cokoliv (libovolný příkaz). Výsledek příkazu set
se vloží do proměnných pro parametry