REFERÈNCIA RÀPIDA SHELL-SCRIPTS *

* burda copia de duneta

VARIABLES

  • set : Veure totes les variables definides
  • env : Veure totes les variables d'entorn definides
  • nom_var=valor_var : Definir variable i assignar-li valor
  • export nom_var=valor_var : Definir variable entorn i assignar-li valor
  • export nom_var : Convertir variable local a variable d'entorn
  • unset nom_var : Alliberar una variable
  • $nom_var : Fer referència al valor de la variable nom_var
  • ${nom_var} : Fer referència al valor de la variable nom_var (les claus ens ajuden a delimitar el nom de la variable)

SUBSTITUCIÓ COMANDES

  • `comanda` o $(comanda) Substituir el nom de la comanda per la seva sortida

CARÀCTERS ESPECIALS

  • \ : anul.la el significat especial del caràcter que va darrera
  • ' ' : anul.la el significat especial de tots els caràcter que estiguin dins les cometes
  • “ “ : anul.la el significat especial de tots els caràcters excepte: $ \ `` “”

REDIRECCIONAMENT E/S

  • < : redireccionament d'stdin
  • > : redireccionament d'stdout. Si el fitxer no existeix el crea. Si el fitxer existeix es carrega el contingut
  • » : redireccionament d'stdout si el fitxer no existeix el crea si el fitxer existeix afegeix a continuació
  • 2> : redireccionament d'stderr si el fitxer no existeix el crea si el fitxer existeix es carrega el contingut
  • : redireccionament d'stderr si el fitxer no existeix el crea si el fitxer existeix afegeix a continuació
  • 1>&2 : redireccionar stdout a stderr
  • 2>&1 : redireccionar stderr a stdout
  • >& : redireccionar stdout i stderr a un fitxer

EXPRESSIONS REGULARS BÀSIQUES

  • . : qualsevol caràcter simple
  • [] : conjunt de caràcters
  • [^ ] : qualsevol caràcter no inclòs als corxets
  • [ - ] : rangs
  • * : 0 o més ocurrències de l'expressió precedent
  • ^exp : qualsevol cadena que comenci amb l'expressió regular exp
  • exp$ : qualsevol cadena que acabi amb l'expressió regular exp

FILTRES

  • cat [nom_fitxer] : mostra stdin/nom_fitxer
  • cut -cllista [nom_fitxer] : extreu les columnes citades a llista
  • cut -fllista -dsep [nom_fitxer] : extreu els camps citats a llista segons el separador sep
    • format de llista:
    • A,B : seleccionar columnes/camps A i B
    • A-B : seleccionar columnes/camps des d'A fins a B
    • A- : des de la columna/camp A fins al final
    • -B : des del principi fins a la columna/camp B
  • grep [-cinv] patró [nom_fitxer] : Recerca de les línies dels fitxers/stdin del patró determinat
    • -c : només mostra el número de línia
    • -i : ignora maiúscules/minúscules
    • -n : afegeix el número de línia
    • -v : mostra les línies que no contenen el patró
    • format de patró (expressions regulars bàsiques):
    • . : qualsevol caràcter simple
    • [] : conjunt de caràcters
    • [^ ] : qualsevol caràcter no inclòs als corxets
    • [ - ] : rangs
    • * : 0 o més ocurrències de l'expressió precedent
    • ^exp : qualsevol cadena que comenci amb exp
    • exp$ : qualsevol cadena que acabi amb exp
  • head [-num] [nom_fitxer] : Mostra les primeres num línies del fitxer/stdin (10 per defecte)
  • sort [-ndutsep] [-k num] [nom_fitxer] : Ordenar les línies de nom_fitxer/stdin
    • -n : ordenació numèrica
    • -d : no té en compte caràcters que no siguin lletres, números o blancs
    • -u : no té en compte les línies duplicades
    • -tsep : especfica un delimitador de camp
    • -knum : especifica que ordenarem perl camp num
  • tail [-num] [nom_fitxer] : Mostra les últimes num línies del fitxer/stdin (10 per defecte)
  • tee [-a] nom_fitxer1 [nom_fitxer2] : Mostra per pantalla nom_fitxer2/stdin i ho escriu a nom_fitxer1
    • -a : enlloc de sobreescriure nom_fitxer1 afegeix a continuació
  • tr c1 c2 [nom_fitxer] : tradueix c1 per c2 de nom_fitxer/stdin
  • tr -s c1 [nom_fitxer] : converteix c1 consecutius en un de sol
  • uniq [nom_fitxer] : converteix diverses línees iguals consecutives de nom_fitxer/stdin en una de sola
  • wc [-lwc] [nom_fitxer] :compta línies, paraules i caràcters de nom_fitxer/stdin.
    • -l : només el nombre de línies
    • -w : només el nombre de paraules
    • -c : només el nombre de caràcters

TUBERIES

  • comanda1 | comanda2 : redireccionem stdout de comanda1 a stdin de comanda2

DEPURACIÓ SCRIPTS

  • set -x : activa la depuració
  • set +x : desactiva la depuració

COMENTARIS

  • # comentari : comentar parts de codi

PARÀMETRES I VARIABLES ESPECIALS

  • $0 : nom del shell-script que s'està executant
  • $n : paràmetre passat al shell-script en la posició n
  • $# : número de paràmetres
  • $* : llista de tots els paràmetres
  • $$ : PID de la shell procés que s'està executant
  • $! : PID de l'últim procés executat
  • $? : Retorn de l'últim procés executat
  • shift : Desplaçar els paràmetres en una posició

ENTRADA/SORTIDA

  • read nom_var : entrada per stdin
  • echo [-ne] cadena/$nom_var : sortida per stdout amb salt de línia final
  • -e : interpreta caràcters amb \
    • \n : salt de línia
    • \t : tabulador

  • -n : suprimeix el salt de línia final

EXPRESSIONS NUMÈRIQUES

  • expr expr_num : avalua expr_num traient el resultat per stdout (a expr_num hem de separar operadors d'operands amb un espai)
NUMERO=`expr 1 + 1`
  • let expr_num : 1) avalua expr_num (a expr_num no hem de separar operadors d'operands amb un espai, ens serveic per assignar)

OPERADORS

OPERADORS NUMÈRICS OPERADORS LÒGICS

  • + : suma
  • ! : no
  • - : resta
  • && : i
  • \* : producte
  • || : o
  • \/ : divisió
  • % : mòdul
  • \( \) : parèntesis

ESPECIFICACIÓ DE CONDICIONS

  • test expr
    • [ expr ]
    • FITXERS
      • [ -e nom_fitxer ] : true si el fitxer existeix
      • [ -d nom_fitxer ] : true si el fitxer existeix i és un directori
      • [ -f nom_fitxer ] : true si el fitxer existeix i és regular
      • [ -L nom_fitxer ] : true si el fitxer existeix i és un enllaç simbòlic
      • [ -r nom_fitxer ] : true si el fitxer existeix i amb permís de lectura
      • [ -w nom_fitxer ] : true si el fitxer existeix i amb permís d'escriptura
      • [ -x nom_fitxer ] : true si el fitxer existeix i amb permís d'execució
      • [ nom_fitxer1 -nt nom_fitxer2 ] : true si fitxer1 és més nou que fitxer2
      • [ nom_fitxer1 -ot nom_fitxer2 ] : true si fitxer1 és més vell que fitxer2
    • CADENES
      • [ cadena ] : true si no és la cadena buida
      • [ -n cadena ] : true si la longitud de la cadena és diferent a 0
      • [ -z cadena ] : true si la longitud de la cadena és 0
      • [ cadena1 = cadena2 ] : true si són iguals
      • [ cadena1 != cadena2 ] : true si són diferents
    • ENTERS
      • [ num1 -eq num2 ] : true si són iguals
      • [ num1 -ne num2 ] : true si són diferents
      • [ num1 -gt num2 ] : true si la dada1 és més gran que la dada2
      • [ num1 -ge num2 ] : true si la dada1 és més gran o igual que la dada2
      • [ num1 -lt num2 ] : true si la dada1 és més petita que la dada2
      • [ num1 -le num2 ] : true si la dada1 és més petita o igual que la dada2

ESTRUCTURES ALTERNATIVES

ESTRUCTURA if

if condicio1
then
	instruccions
elif condicio2
then
	instruccions
else
	instruccions
fi

ESTRUCTURA case

case nom_var in
	patro1) instruccions;;
	patro2) instruccions;;
		...
	patron) instruccions;;
	*) instruccions;;
esac

ESTRUCTURES REPETITIVES

ESTRUCTURA while

while condicio
do
    instruccions
done

ESTRUCTURA until

until condicio
do
    instruccions
done

ESTRUCTURA for

for nom_var in llista_valors
do
    instruccions
done

TAULES

  • nom_arr=( val1 val2 … valn4 ) :declaració i assignació inicials
  • nom_arr[index]=val :assignació de val a l'element index de nom_arr
  • ${nom_arr[index]} :fer referència a l'element situat a index de la taula nom_arr

FUNCIONS

nom_funcio(){
	...
	instruccions
	...
}
* **return valor** :interromp la funció assignant un valor al codi de retorn de la funció
1) expr_num
 
bash/ref.txt · Última modificación: 2008/05/13 10:00 (editor externo)
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki