Problème de fonction shell

darky -  
 darky -
Bonjour,

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 : '{
A voir également:

3 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
et avec ; ?
function format_40G_ATA() 
{
	mkntfs -fL D -N 3.1 /dev/hda2 ;
}
0
jadfa
 
Je n'arrive pas à reproduire ton erreur mais termine par ";" la dernière commande de tes fonctions au cas où
0
darky
 
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++.

Merci quand même
0