Académique Documents
Professionnel Documents
Culture Documents
#!/bin/bash
echo "Nom du programme : $0"
echo "Nombre d'arguments : $#"
if [ $# -ne 0 ]
then
echo "Liste des arguments : $@"
fi
2. Ecrivez un script Shell qui utilise une boucle for pour afficher les nombres de 3à11.
3. Ecrivez un script shell qui utilise une boucle for pour parcourir la liste des entrées du répertoire
courant dont le nom se termine par ‘.c’ et appliquer à chacune la commande ls -l.
for i in *.c
do
ls -l $i
done
dimanche : <taille>
lundi : <taille>
...
8. Utilisez une boucle for qui affiche l’alphabet en minuscules en utilisant l’intervalle a..z.
10. Ecrivez un script shell qui permet d'afficher le menu suivant à l'utilisateur :
#Solution1
function verif_user() {
read -p "donner le nom de l'user: " user
#my_user=$(getent 'passwd' $user)
my_user=$(cut -d":" -f1 /etc/passwd | grep $user)
if [ ${#my_user} -ne 0 ]
then
echo "user $user exist"
else
echo "user $user doesn't exist"
fi
}
#Solution2
function verif_user() {
read -p "donner le nom de l'user: " user
grep "^$user:" /etc/passwd > /dev/null
if [ $? -eq 0 ]
then
echo "user $user exist"
else
echo "user $user doesn't exist"
fi
}
#Solution3
function verif_user() {
read -p "donner le nom de l'user: " user
if grep "^$user:" /etc/passwd > /dev/null
then
echo "user $user exist"
else
echo "user $user doesn't exist"
fi
}
Solution 2 : Lire le nom de l'utilisateur le programme principal et le faire passer comme paramètre
lors de l'appel de la fonction
function verif_user() {
if grep "^$1" /etc/passwd > /dev/null
then
echo "user $user exist"; return 1
else
echo "user $user doesn't exist"; return 0
fi
}
#Solution 1
function verif_uid() {
if grep "^$1" /etc/passwd > /dev/null
then
echo "The $1's UID is $(id -u $1)"
else
echo "user $1 doesn't exist";
fi
}
#Solution 2
function verif_uid() {
uid=$(grep "^$1:" /etc/passwd | cut -d":" -f3)
if [ ${#uid} -ne 0 ]
then
echo "The $1's UID is $uid"
else
echo "user $1 doesn't exist";
fi
}
4. Un script qui accepte des options pour réaliser les fonctions suivantes :
if [ $# -ne 0 ]
then
while getopts "eu" opt;
do
case $opt in
"e") read -p "username: " username; verif_user $username;;
"u") read -p "username: " username; verif_uid $username;;
esac
done
else
echo "An option is needed try --help--"
echo -e "-e: check user \n -u: diplay user uid";
fi