Lancer un processus en AR plan : ps &

 

Script = prog en shell, fichier texte à interpréter

 

Enchaîner

les cdes

les ps

 

·  mode ligne (ligne de cde)

cde1; cde2;  Þ le shell courant interprète cde puis cde2

cde1 && cde2   Þ  succès cde1 Þ exé° cde 2

cde1 || cde2  Þ  échec cde1 Þ exé° cde2

·  lancer un script :

 

ficScript   Þ le shell courant va interpréter le script

Attn : ficScript doit ê exécutable

 

. ficScript Þ le shell courant interprète le script

ksh ficScript Þ un nouveau shell va interpréter le script

 

Rappel : 1 shell Û 1 xterm

 

ksh = langage

-    directives = instructions (5)

-    variables

-    tableaux

-    fonctions

-    récursivité

 

Paramétrer un script : ligne de cde

nomSript par1 par2

 

nom var

contenu

0

nom du script

1

param 1

2

param 2

9

param 9

#

nb de param

*

liste des param

 

Rq : $1 = contenu du param1

 

shift n Þ enlève les n premiers paramètres

 

set ch1 ch2 Þ subsitue les param par les chaînes correspdtes

 

0 Û oui Û vrai

1 Û faux

 

une cde a toujours un code retour

 

[ exp ] Þ teste exp, résultat dans le code retour : ?

 

-a fic Þ fic existe ?

-d fic Þ fic est un répertoire ?

-f fic  Þ fichier ordinaire ?

-s fic  Þ taille (fic) ¹ 0 ?

-r fic Þ fic en lecture ?

-w fic Þ fic en écriture ?

-x fic Þ fic exécutable ?

 

ch1 = ch2  Þ ch1 = ch2 ?

ch1 != ch2   Þ ch1 ¹ ch2 ?

ch1=ch2   Þ ch1 ¬ ch2 : affectation

 

Attn : si on parle du contenu d'une variable, mettre $var

nb1

-eq

nb2

Þ

nb1

=

nb2 ?

-ne

¹

-lt

<

-le

-gt

>

-ge

 

exp1 || exp2  Þ OU logique

exp1 && exp2  Þ ET logique

 

Boucles

 

if  <test>

   then

   else

fi

 

<test> est V ou F selon le code retour de la cde ou de l'expression

 

read var  Þ var ¬ entrée clavier

 

while <test>

do

done

 

for  var  in  val1 val2

do

done

 

Rq : val1 val2 peuvent être

·  les résultats d'une cde

Ex : for indice in `ls`

·  le contenu d'une variable

Ex : for indice in $*

 

case var in

motif1) cde1;

      cde2;;

motif2) ;;

*)    ;;  #cas par défaut

esac

 

until <test>

do

done

 

break interrompt la boucle

 

#commentaires