Demande d'aide pour un script sous Unix

Fermé
Good Charlotte - 21 mai 2005 à 19:46
mamiemando Messages postés 33088 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 30 avril 2024 - 23 mai 2005 à 09:16
Salut les amis , je suis nouveau dans le monde Unix , et je prends un cours accéléré (je crois m'être trompé en le faisant ) sur Unix et la programmation en langage C++.
J'ai un travail à faire et franchement je n'y arrive carrément pas, je vous présente l'énoncé ,et ce que j'ai gribouillé .

Description du travail :
Écrire un script que vous nommerez Travail-1 , qui dans un premier temps affiche à l'écran le menu suivant:

BIENVENUE DANS LE MENU DE (VOS NOMS)

Option Description
1 Afficher la liste des usagers en lignes
2 Vérifier si un utilisateur spécifique est en ligne
3 Modifier des droits d'accès
4 Supprimer un fichier
5 Afficher le nombre des processus des utilisateurs
6 Retourner le nombre des caractères dans un fichier
7 Terminer le programme
Entrez votre choix:

L'utilisateur devra entrer un des choix proposés et faire retour

Voici ce que j'ai fait , SVp ne vous moquez pas .
( en fait j'ai fait le travail jusqu'a l'option 3 )

#!/bin/bash

while true
do read nombre

if $nombre=1
then
who

elsif $nombre=2
then
echo $USER

elsif $nombre=3
then
ls -l| chmod 704

else break
fi
fi
fi
done

Merci de votre aide , j'en ai vraiment besoin !
A voir également:

3 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
21 mai 2005 à 20:52
Pour écrire plus sympa un menu :

#! /bin/sh


opt1="Afficher la liste des usagers en lignes"
opt2="Vérifier si un utilisateur spécifique est en ligne"
opt3="Modifier des droits d'accès"
opt4="Supprimer un fichier"
opt5="Afficher le nombre des processus des utilisateurs"
opt6="Retourner le nombre des caractères dans un fichier"
opt7="Terminer le programme"
echo -e "\nBIENVENUE DANS LE MENU DE (VOS NOMS)\n"

echo -e "   Option Description\n"

PS3="Entrez votre choix : "

select option in "$opt1" "$opt2" "$opt3" "$opt4" "$opt5" "$opt6" "$opt7"

 do
   case $option in
        $opt1) echo "Vous avez choisi l'option : $opt1"
                break ;;
        $opt2) echo "Vous avez choisi l'option : $opt2"
                break ;;
        $opt3) echo "Vous avez choisi l'option : $opt3"
                break ;;
        $opt4) echo "Vous avez choisi l'option : $opt4"
                break ;;
        $opt5) echo "Vous avez choisi l'option : $opt5"
                break ;;
        $opt6) echo "Vous avez choisi l'option : $opt6"
                break ;;
        $opt7) echo "Vous avez choisi l'option : $opt7"
                break ;;
        *) echo "Option inexistante"
                break ;;
   esac
 done


Tu n'as qu'à ajouter tes commandes.
1
mamiemando Messages postés 33088 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 30 avril 2024 7 751
23 mai 2005 à 09:16
4 Supprimer un fichier

Utilise la commande rm.

5 Afficher le nombre des processus des utilisateurs

Utilise la commande :
ps aux
puis un grep pour ne garder que les processus de l'utilisateur
puis un wc -l pour les compter (un process utilisateur par ligne)

6 Retourner le nombre des caractères dans un fichier

Encore du wc et un cut -f pour récupérer le bon champ

7 Terminer le programme

Utilise la commande exit

NB: Tu peux avoir des détails sur ces commandes en tapant dans un terminal :
$ man lenomdelacommande
ex :
$ man rm


Bonne chance
1
laloi Messages postés 184 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 22 février 2011 13
21 mai 2005 à 20:05
Déja, au lieu de if then else, utilise case.

syntaxe:

case $variable in
valeur1) liste de commandes ;;
valeur2) liste de commandes ;;
*) liste de commandes ;;
esac

le *) représente toute les autres valeurs possibles
0