Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/04/2015, à 12:02

farfadet84000

Script bash d'installation

Bonjour à tous
Je m'atelle à une tache ardue. Je suis en train de créer un script bash (mon tout 1er script mais j'aime le gout du défie) et je bloque sur deux petites choses.
Je cherche dans un premier temps à afficher les differents disque contenu dans /dev/sd*. J'y arrive mais je ne sais comment exploiter le resultat pour que l'utilisateur puisse choisir le disque à préparer.
Le second soucis comment lancer fdisk sur le disque choisi et retourner sur le script une fois terminé?
Voici le bout de code que j'ai commencé à créer soyez indulgent comme je le précisait c'est mon tout premier script. Le but pour moi étant avant tout d'apprendre le bash.

#!/bin/bash
#Version 1.0
echo Installation de Votre distribution
#Préparation des disques
echo Choix du disque sur lequel installer votre distribution
echo /dev/.sd*
exit 0

Hors ligne

#2 Le 25/04/2015, à 22:58

wido

Re : Script bash d'installation

Bonjour,
tu peux inspirer comme ceci, en lançant un ls /dev/sd*

l'utilisateur le voit dans le terminal

et il suffit à l'utilisateur de mettre le sd[quelque chose] qui lui convient

en modifiant ce bout de code tu peux y arriver aisement

#!/bin/sh
echo -n "Voulez-vous voir la liste des fichiers Y/N : "
read ouinon
if [ "$ouinon" = "y" ] || [ "$ouinon" = "Y" ]; then
    echo "Liste des fichiers :"
    ls -la
elif [ "$ouinon" = "n" ] || [ "$ouinon" = "N" ]; then
    echo "Ok, bye! "
else
    echo "Il faut taper Y ou N!! Pas $ouinon"
fi

http://doc.ubuntu-fr.org/tutoriel/scrip … e_controle

Hors ligne

#3 Le 26/04/2015, à 04:13

MicP

Re : Script bash d'installation

Je suis pas un pro des regex, mais j'ai écrit ça après avoir lu ton message, et peut-être que ça pourrait t'intéresser.
En fait, je préfère récupérer les informations du répertoire /dev/disk/by-id : elles me semblent plus parlantes quand il me faut choisir un disque.

ls -l /dev/disk/by-id | grep '\/sd.$' | awk '{print $11, $9}' | sed -e 's/^\.\.\/\.\.\///' -e '/scsi\|wwn/d'

=======
Si après tu compte utiliser fdisk, il faudra que les disques n'utilisent pas de table des partitions de type GPT. Sinon, il vaudrait mieux utiliser parted.

=======
Si l'utilisateur peut utiliser fdisk ou parted, c'est que cet utilisateur à tous les privilèges => compte root.
Donc fait gaffe qu'il ne se trompe pas de disque, et qu'il ne modifie pas le disque système sur lequel il est.
Le mieux, serait carrément de l'en empêcher en ne lui proposant que ce qu'il peut modifier :
Même root a besoin d'être protégé de lui même (le samedi matin par exemple…)

Hors ligne

#4 Le 26/04/2015, à 10:11

farfadet84000

Re : Script bash d'installation

Merci pour vos réponse wido et micp je testerais tout cela.

MiCP a écrit :

Si l'utilisateur peut utiliser fdisk ou parted, c'est que cet utilisateur à tous les privilèges => compte root.
Donc fait gaffe qu'il ne se trompe pas de disque, et qu'il ne modifie pas le disque système sur lequel il est.
Le mieux, serait carrément de l'en empêcher en ne lui proposant que ce qu'il peut modifier :
Même root a besoin d'être protégé de lui même (le samedi matin par exemple…)

Je suis en train de créer un script d'installation popur automatiser l'install de archlinux. Donc l'utilisateur est root puisqu'il demarre du live cd/usb.
Après bien sur je mettrais un message prevenant qu'il faut faire attention a ce que l'on fait et qu'on risque de perdre des données par megarde.

Hors ligne

#5 Le 26/04/2015, à 13:26

MicP

Re : Script bash d'installation

…installation popur automatiser l'install de archlinux. Donc l'utilisateur est root puisqu'il demarre du live cd/usb…

Cool on peut en tirer pas mal d'information sur le contexte comme "archlinux" "boot sur Live CD/USB"

Donc, vu le contexte, pas de problèmes pour l'histoire des privilèges.
Désolé d'avoir crié au loup pour rien, concernant "root"  smile

Merci pour la précision.

Je vais aller voir un peu du côté d'archlinux (j'aime bien)
J'en retirerai peut-être plus d'informations sur le contexte : je me demandais justement si dialog n'était pas dans le coin,
car il pourrait grandement aider pour l'interface utilisateur choix sélection.
Mais bon, s'il n'a que cette histoire de choix de disque, autant utiliser simplement bash.

Un exemple simple (copié-collé et testé chez moi) récupérer depuis le web ici

http://askubuntu.com a écrit :
#!/bin/bash
# Bash Menu Script Example

PS3='Please enter your choice: '
options=("Option 1" "Option 2" "Option 3" "Quit")
select opt in "${options[@]}"
do
    case $opt in
        "Option 1")
            echo "you chose choice 1"
            ;;
        "Option 2")
            echo "you chose choice 2"
            ;;
        "Option 3")
            echo "you chose choice 3"
            ;;
        "Quit")
            break
            ;;
        *) echo invalid option;;
    esac
done

A+

Hors ligne