Diferència entre revisions de la pàgina «Bash script»
m (→switch...case) |
(→Entorn) |
||
Línia 23: | Línia 23: | ||
== Entorn == | == Entorn == | ||
− | Les comandes de la ''shell'' s'executen sense incloure tota la ruta mercès a la variable d'entorn $PATH. | + | Les comandes de la ''shell'' s'executen sense incloure tota la ruta mercès a la variable d'entorn $PATH |
+ | $ echo $PATH | ||
+ | ...i podrem veure els directoris (separats per :) en els que la ''shell'' buscarà una comanda quan la teclegem. Les que (quasi) segur que hi han de ser son: | ||
+ | /bin:/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin | ||
+ | En aquestes carpetes hi ha les comandes més habituals que utilitzem com ''ls'' a <code>/bin</code> o ''ifconfig'' a <code>/sbin</code> (a sbin hi ha les de Superusuari, d'aquí la 's' al davant). | ||
+ | |||
+ | Si algun dia volem saber on hi ha una comanda que estem utilitzant, podem esbrinar-ho amb: | ||
+ | $ which ls | ||
+ | ...i ens dirà on està el binari que s'executarà amb aquesta comanda (que es buscarà als diferents directoris $PATH, en l'ordre que estan situats). | ||
+ | |||
+ | |||
+ | === Directori ~/bin === | ||
+ | Una curiositat és que si creem la carpeta <code>bin</code> al nostre ''home directory'' aquesta es posarà automàticament al $PATH (fes logout i login després de crear la carpeta). Aquest és el lloc on posar scripts nostres i que no calgui que estiguin disponibles per altres usuaris. | ||
+ | $ mkdir ~/bin | ||
+ | ...i fes logout i login i comprova el $PATH | ||
<br> | <br> |
Revisió del 15:15, 11 feb 2016
Els diversos Unix's han tingut sempre una potent interfície de comandes. La shell és la interfície que ens permet "dialogar" amb el nucli del sistema operatiu passant-li comandes.
Hi ha diversos llenguatges de shell script, entre ells el CSH (C-shell), i el KSH (Korn-shell), però sembla que el què s'ha imposat definitivament és el BASH o Bourne-Again SHell.
És important dominar algun dels editors de text per consola. El més típic ara és el nano
, tot i que convé també conèixer vi
ja que sol tenir syntax highlight (vim o vi improved) i perquè per raons històriques sempre està present i ens pot treure d'un apuro.
Contingut
Coses bàsiques
Els scripts son arxius de text amb instruccions llegibles per la nostra shell. Es comenten amb un # tot i que la 1a línia és una excepció (comença per #!) i indica quin serà l'intèrpret que l'executarà. Edita hola.sh des del teu editor de text favorit:
#!/bin/bash
# això és un comentari
echo "hola!" # això ja és una instrucció
...i abans de començar a executar-lo cal donar permisos d'execució a l'arxiu:
$ chmod +x hola.sh
...i ara sí que ja el podem executar:
$ ./hola.sh
Entorn
Les comandes de la shell s'executen sense incloure tota la ruta mercès a la variable d'entorn $PATH
$ echo $PATH
...i podrem veure els directoris (separats per :) en els que la shell buscarà una comanda quan la teclegem. Les que (quasi) segur que hi han de ser son:
/bin:/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
En aquestes carpetes hi ha les comandes més habituals que utilitzem com ls a /bin
o ifconfig a /sbin
(a sbin hi ha les de Superusuari, d'aquí la 's' al davant).
Si algun dia volem saber on hi ha una comanda que estem utilitzant, podem esbrinar-ho amb:
$ which ls
...i ens dirà on està el binari que s'executarà amb aquesta comanda (que es buscarà als diferents directoris $PATH, en l'ordre que estan situats).
Directori ~/bin
Una curiositat és que si creem la carpeta bin
al nostre home directory aquesta es posarà automàticament al $PATH (fes logout i login després de crear la carpeta). Aquest és el lloc on posar scripts nostres i que no calgui que estiguin disponibles per altres usuaris.
$ mkdir ~/bin
...i fes logout i login i comprova el $PATH
Variables
... scope ...
Arguments
...
Bucles, llistes i altres gaites
...
Condicionals
...
if...then
...
switch...case
...
Exercicis
...