Je suis confronté à un problème de script shell. Je suis actuellement en stage et je dois créer un script afin d'automatiser la préparation des machines.
Quand j'essaie d'exécuter le script le shell me retourne:
'nstall.sh : ligne 2 : syntax error near unexpected '
'nstall.sh : ligne 2 : 'function format_40G_ATA
Pour information je travail avec un sysrescuecd.
install.sh:
#!/bin/sh
#~~~~~~Fonction de formatage des disques durs 40Go ATA(IDE)~~~~~~#
function format_40G_ATA()
{
mkntfs -fL D -N 3.1 /dev/hda2
}
#----------------------------------------------------------------#
#~~~~~~Fonction de formatage des disques durs 80Go ATA(IDE)~~~~~~#
function format_80G_ATA()
{
mkntfs -fL D -N 3.1 /dev/hda2
mkntfs -fL E -N 3.1 /dev/hda3
}
#----------------------------------------------------------------#
#~~~~~~ Fonction de formatage des disques durs 80Go SATA ~~~~~~#
function format_80G_SATA()
{
mkntfs -fL D -N 3.1 /dev/hda2
mkntfs -fL E -N 3.1 /dev/hda3
}
#----------------------------------------------------------------#
#~~~~~~~~~~~~ Affichage du menu principal ~~~~~~~~~~~~#
echo "Veuillez sélectionner la machine que vous souhaitez installer."
echo "1) 240"
echo "2) 260"
echo "3) 270"
echo "4) 620 ATA"
echo "5) 620 SATA"
echo "6) 745"
echo "Q: quitter"
#----------------------------------------------------------------#
#~~~~~~ On récupère la valeur saisie par l'utilisateur ~~~~~~#
read choix
#----------------------------------------------------------------#
#~~~~~~~~~~ On traite la valeur récupérée ~~~~~~~~~~#
case $choix in
1) echo "sfdisk /dev/sda < partitions_40G_ATA" > install_40G_ATA.sh
chmod 755 install_40G_ATA.sh
sh install_40G_ATA.sh
partimage restore -b /dev/sda1 GX240.000 -s xxxx-yyyy
format_40G_ATA;;
2) echo "sfdisk /dev/sda < partitions_40G_ATA" > install_40G_ATA.sh
chmod 755 install_40G_ATA.sh
sh install_40G_ATA.sh
partimage restore -b /dev/sda1 GX260.000 -s xxxx-yyyy
format_40G_ATA;;
3) echo "sfdisk /dev/sda < partitions_40G_ATA" > install_40G_ATA.sh
chmod 755 install_40G_ATA.sh
sh install_40G_ATA.sh
partimage restore -b /dev/sda1 GX270.000 -s xxxx-yyyy
format_40G_ATA;;
4) echo "sfdisk /dev/sda < partitions_80G_ATA" > install_80G_ATA.sh
chmod 755 install_80G_ATA.sh
sh install_80G_ATA.sh
partimage restore -b /dev/sda1 GX620_ATA.000 -s xxxx-yyyy
format_80G_ATA;;
5) echo "sfdisk /dev/sda < partitions_80G_SATA" > install_80G_SATA.sh
chmod 755 install_80G_SATA.sh
sh install_80G_SATA.sh
partimage restore -b /dev/sda1 GX620_SATA.000 -s xxxx-yyyy
format_80G_SATA;;
6) echo "sfdisk /dev/sda < partitions_80G_SATA" > install_80G_SATA.sh
chmod 755 install_80G_SATA.sh
sh install_80G_SATA.sh
partimage restore -b /dev/sda1 GX745.000 -s xxxx-yyyy
format_80G_SATA;;
Q) exit 0;;
*) echo "choix incorrect"
exit -1;;
esac
#----------------------------------------------------------------#
Si je supprime les
()
après le nom de la fonction cela me donne:
'nstall.sh : ligne 3 : syntax error near unexpected '{
'nstall.sh : ligne 3 : '{
En fait j'ai trouvé le problème c'est que je modifier le fichier en l'ouvrant sous windows avec le bloc note. Et ce petit **** modifié l'encodage. Problème résolu en passant par notepad++.