Sommaire

Solutions du chapitre Mécanismes essentiels du shell

1. Fonctionnalités diverses

a. Exercice 1 : commandes internes et externes

Les commandes umask et chmod sont-elles des commandes internes ?

$ type umask 
umask is a shell builtin 
$ type chmod 
chmod is a tracked alias for /usr/bin/chmod

umask est une commande interne. chmod est une commande externe. La commande interne type permet de savoir si une commande possède une implémentation interne.

b. Exercice 2 : génération de noms de fichiers

Soit la liste de fichiers suivante :

$ ls 
bd.class.php    header.inc.php  install.txt     readme.txt 
essai           index.php       mail.class.php

1.

Afficher les noms de fichiers se terminant par .php.

$ ls *.php 
bd.class.php    header.inc.php  index.php       mail.class.php

2.

Afficher les noms de fichiers ayant la lettre e en deuxième position.

$ ls ?e* 
header.inc.php  readme.txt

3.

Afficher les noms de fichiers dont la première lettre est comprise entre a et e.

$ ls [a-e]* 
bd.class.php  essai

4.

Afficher les noms de fichiers qui ne commencent pas par une voyelle.

$ ls [!aeiouy]* 
bd.class.php    header.inc.php  mail.class.php  readme.txt

Expressions complexes (ksh, bash)

En bash, il faut activer la reconnaissance des expressions complexes :

$ shopt -s extglob

5.

Afficher les noms de fichiers qui ne se terminent pas par .php.

$ ls !(*.php) 
essai ...