Le SHELL, quel qu'il soit, est un outil fabuleux.

En effet, avec un simple fichier texte nous pouvons faire énormement de choses.

Exemple simple :

#!/bin/bash
echo "Voici mon premier script"
exit 0

Ce script, affiche juste une ligne. Certes ce n'est pas très util, mais nous allons aller un peu plus loin plus tard.

#!/bin/bash : le SHEBANG : Cette ligne sert a définir quel est le shell à utiliser pour lire le script. En l'occurence, BASH.

echo "Voici mon premier script" -> la commande echo permet d'afficher à l'écran ce qui suit celle ci.

exit 0 -> exit permet de sortir (proprement) d'un script. Quand tout se passe bien, il est d'usage de sortir avec le code retour 0. Nous verrons par la suite que les codes retours peuvent être très utiles.

Maintenant, nous allons voir un point sujet plus complexe :

Lister le contenu des dossier home des utilisateurs innexistents :

for utilisateur in `ls -l /home/ | grep ^d | awk '{print $8}'`
do
  cat /etc/passwd | grep "/home/$utilisateur" > /dev/null 2> /dev/null
  if [ $? -eq 1 ]
  then
    echo $utilisateur
    ls -l /home/$utilisateur
  fi
done

En français, cela donne :

Pour tout utilisateur présent dans la liste des sous dossiers de /home

Si le sous dossier n'est pas présent dans /etc/passwd

Lister le contenu du dossier.


Corrigé suite au commentaire de mccharlet