Bonjour,

j'ai besoin d'un petit script pour convertir le nom d'une partition (par ex /dev/hda1) en un nom de partition pour grub (par ex (hd0,0) ), j'ai donc écrit ceci:

convgrubdev
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash
# convert a device name into a grub device name
# for example convert /dev/hda2 into (hd0,1)
 
disk=$(echo $1 | cut -b 6- | cut -b -2)
diskletter=$(echo $1 | cut -b 8- | cut -b -1)
numpart=$(echo $1 | cut -b 9-)
 
case "$diskletter" in
 a) numdisk=0;;
 b) numdisk=1;;
 c) numdisk=2;;
 d) numdisk=3;;
 e) numdisk=4;;
 f) numdisk=5;;
esac
 
if [ ${#1} = 9 ] ; then
 case "$numpart" in
  1) partgrub=,0;;
  2) partgrub=,1;;
  3) partgrub=,2;;
  4) partgrub=,3;;
  5) partgrub=,4;;
  6) partgrub=,5;;
  7) partgrub=,6;;
  8) partgrub=,7;;
  9) partgrub=,8;;
 esac
fi
 
echo '('$disk$numdisk$partgrub')'
ce script remplit sa fonction, ainsi la commande convgrubdev /dev/hda2 retourne (hd0,1).

Je souhaiterais l'améliorer, y a t'il des pros du bash dans les parages?

merci d'avance