Demande d'aide pour un script sous Unix

Good Charlotte -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
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 !

3 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    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
  3. laloi Messages postés 184 Statut Membre 13
     
    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