Scripts
Introducció
Un guió o script és un arxiu de text executable que conté una sèrie de comandes. Quan s'executa l'script, s'executen les comandes que conté.
Es pot crear i editar un script amb qualsevol editor de text pla (nano, gedit...).
Creació de l'script
El més habitual és posar l'extensió .sh als scripts de Linux:
nano crea_directoris.sh
En la primera línia cal indicar amb quin intèrpret de comandes s'han d'executar les comandes que conté (#!/bin/bash
).
A continuació es posen les comandes en el mateix ordre en què s'han d'executar:
Tota línia que comenci amb coixinet
#
es tracta d'un comentari i no serà llegida pel intèrpret de comandes (excepte la primera línia que estableix el shell pel que ha sigut dissenyat el script).
Assignació de permisos
Un cop creat el script cal modificar els permisos de l'arxiu per permetre que s'executi:
Li podem donar permisos d'execució amb la comanda:
Un cop assignats els permisos, si fem la comanda
ls
veurem com el color del fitxer ha canviat indicant que és un fitxer executable i per tant es pot executar.
Execució de l'script
Linux busca els programes executables en els directoris que estan definits a la variable de sistema
$PATH
.
Si el nostre script es troba en una d'aquestes ubicacions podrem executar-lo posant únicament el nom del script.
Si no es troba en aquestes ubicacions haurem d'indicar la ruta sencera on es troba el fitxer executable o bé si està al mateix directori cal posar ./
:
També es pot executar amb la comanda bash. En aquest cas no caldria canviar els permisos ni posar ./
al davant si estem en el mateix directori:
Per comprovar que l'script funsció correctament, es pot executar l'script pas a pas amb el paràmetre -x
.
Cometes
En els scripts s’utilitzen tres tipus de cometes:
Exemples:
Exemple:
La primera línia
echo 'Hola $NOM'
amb cometes simples no s'ha substituït el valor de la variable.La segona línia
echo "Hola $NOM"
amb cometes dobles s'ha substituït la variable NOM per Jordi.La tercera línia echo `Hola $NOM` amb cometes invertides dóna un error al executar-se perquè s'intenta executar una comanda però Hola no és una comanda.
Variables
Paràmetres
Comandes interessants
Estructures de control
Condicions
Exemples d'scripts
Trobar els 10 directoris més grans donat un path
Última actualización