7.4 Interface shell
-
Écrire de nouvelles commandes
Réécrire des commandes déjà existantes
- Appel de ces commandes depuis le shell sous la forme
nom [arguments]...
Accès aux arguments de la commande
-
Paramètres de la fonction
main()
main (int argn, char * argv[]) ;
|
argn |
nombre d'arguments + 1 |
argv[0] |
nom de la commande |
argv[1] à argv[argn] |
arguments |
|
-
Exemple, ma commande
echo
main (int n, char *v [])
{
int i ;
for (i=1 ; i<n ; i++)
printf ("%s%c", v[i], (i<n-1) ? ' ': '\n') ;
}
Accès à l'environnement shell
-
Variables d'environnement C-shell
Variables exportées du Bourne shell
- Trois moyens
-
Variable externe
environ
extern char **environ ;
-
Forme générale de
main()
main (int argn, char * argv[], char **arge) ;
-
arge
est un pointeur sur l'environnement
-
getenv()
Fonction de la bibliothèque standard
char * getenv (char *var) ;
-
Retourne un pointeur sur la valeur de la variable
var
Code de retour
-
Sous le shell, tester la valeur de retour d'une commande
- Convention :
0 |
déroulement normal |
¹ 0 |
déroulement anormal |
- Cette valeur peut être récupérée au niveau du shell :
-
Variable Bourne shell
$?
- Variable C-Shell
$status
- Primitive
exit ()
exit (int n)
-
Termine proprement le processus
Code de retour de valeur n