Commandes internes au Bourne Shell
Une commande interne est une commande qui peut être lancée via le shell, mais, le fichier commandes correspondant n'est pas présent sur le disque (dans le répertoire /bin par exemple). Elle semble ne pas exister. En fait, il s'agit d'une interprétation directe de la commande par le shell. Contrairement aux commandes externes (présent par exemple dans /bin) qui eux seront chargées en mémoire par le shell pour exécution. Ces commandes sont donc spécifiques au shell et ne seront pas forcement présentes dans un autre shell !
Liste des commandes internes
- : commande vide faisant un exit 0, sert aux boucles infinies.
- break [n] permet de sortir d’une structure de contrôle,
et de n niveaux.
- cd [rep] précise le répertoire courant, ou
retourne au répertoire $HOME.
- continue [n] provoque le branchement sur le test d’une
structure de contrôle nième boucle.
- exec [com] remplace le processus courant avec la commande
précisée.
- exit [n] termine le processus courant et retourne une valeur
d’exit.
- export [var] exporte une variable vers l’environnement
général.
- pwd Indique le chemin courant.
- read [variables] permet une lecture des variables sur l’entrée
standard.
- readonly [var] idem que read, sauf que la variable n’est
plus modifiables.
- shift décalage des paramètres. $1 devient $2
et $2 devient $3 et ainsi de suite. $9 permet ainsi d’accéder au
dixième paramètre.
- trap [commande] [n] exécute les commandes sur réception
de signaux. Sans commande, permet de rétablir la fonction des signaux.
- umask [xyz] précise la masque de création des
fichiers pour l’utilisateur.
- unset [var] supprime les variables de l’environnement
du processus courant.
- wait [n] le processus père attend la fin du processus
n, sans paramètres, attend la fin de tous les fils.
- eval arg interprète arg avant de l'exécuter.
- cmd1 && cmd2 cmd2 sera exécuté si cmd1
s'est exécuté correctement.
- cmd1 || cmd2 cmd2 sera exécuté si cmd1 ne s'est
pas exécuté correctement.
- type com indique la localisation d'une commande.
L'opérateur set
Cet opérateur permet de définir un ensemble de paramètres accessibles grâce à $#, $*, etc…
Exemple :
set `who am i`
echo $*
affiche : toto tty07 jui 10 09 :07
echo $3
affiche jui