next up previous contents Next: Capture de signaux - Up: Scripts de shell avancés. Previous: Développements.   Table des matières  

21.4 Commandes internes.

Beaucoup de commandes exécutent des fonctionnalités internes au bash ou sont interprétées de manière particulière. Elles n'invoquent pas d'exécutables en dehors du système de fichiers. Certaines d'entre elles sont décrites au chapitre 8 et quelques unes sont discutées ici, en complément. Pour une description exhaustive, consultez bash(8):

:
un double-point en soi ne signifie rien. Il représente une ligne sans opération, comme dans:

if <commande> ; then

   : 
else 
   echo "la <commande> a échoué" 
fi 


.filename args
un simple point agit comme la commande source. Voyez ci-dessous.

alias commande=valeur
crée un synonyme (ou alias) associé à une commande. Essayez:

alias necho="echo -n" 
necho "hello"


Certaines distributions présentent des alias pour les commandes mv, cp et rm de manière à inclure l'option interactive -i. Ceci empêche la suppression de fichiers sans avertissement (pour rm du moins), mais cela peut gêner le travail de l'administrateur. Voyez votre fichier ~/.bashrc pour ces commandes. Essayez aussi la commande unalias.

unalias commande
détruit le synonyme créé avec la commande alias.

alias -p
affiche la liste des synonymes.

eval argument...
exécute l'argument (ou les arguments) comme une ligne de script shell.

exec commande argument...
commence l'exécution de commande sous le même PID que le script courant. Ceci est souvent utilisé dans les scripts de shell qui constitutent des interfaces pour certains programmes. Le script d'interface installe des variables d'environnement et ensuite, il exécute le programme binaire en dernière ligne. exec ne devrait jamais rien retourner.

local variable=valeur
attribue une valeur à une variable. La variable résultante est seulement visible pour la fonction en cours.

pushd repertoire (et popd)
ces deux commandes sont utiles pour passer d'un répertoire à l'autre. pushd peut être utilisée au lieu de cd, mais contrairement à cd, le répertoire est sauvé dans une liste de répertoires. A tout moment, le fait d'entrer popd vous renvoie au répertoire précédent. Cela est très pratique pour naviguer étant donné que ces commandes conservent un historique des répertoires visités.

printf format arguments...
Cette fonction ressemble à la fonction printf en C. Son résultat est similaire à celui d'echo mais cette commande interne est utile pour des formatages complexes. Consultez printf(3) pour plus de détails et essayez à titre d'exemple: printf ``%10.3e\n'' 12 .

pwd
affiche le répertoire courant.

set
affiche la valeur de toutes les variables d'environnement. Voyez la section 21.6 consacrée à la commande set.

source nom_de_fichier arguments...
lit nom_de_fichier dans l'environnement du shell courant. Ceci est utile pour exécuter un script de shell quand les variables d'environnement fixées par ce script doivent être préservées.

times
affiche les durées d'utilisation ``système'' et ``utilisateurs'' pour le shell et ce, pour les processus exécutés dans le shell.

type commande
indique si commande est un synomyne, une commande interne ou un exécutable du système.

ulimit
affiche et fixe les différentes limites de ressources des utilisateurs telles que les limites d'utilisation de la mémoire et de la CPU/ Voir bash (1) pour de plus amples détails. [NdT: man ulimit indique que cette commande est obsolète. Consultez man limits.]
umask
consultez la section 15.2.

unset VAR
efface une variable ou une variable d'environnement.

unset -f fonction
supprime une fonction.

wait
effectue une pause jusqu'à ce que tous les tâches en arrière-plan soient terminés.

wait PID
effectue une pause jusqu'à ce que le processus en arrière-plan (dont le ProcessIDentifier est PID) soit terminé puis, retourne le code du processus en arrière-plan.

wait %job
idem mais en fonction d'une tâche particulière.


next up previous contents Next: Capture de signaux - Up: Scripts de shell avancés. Previous: Développements.   Table des matières  
1-01-2006