Problème de fonction shell

Fermé
darky - 9 juil. 2008 à 09:25
 darky - 20 août 2008 à 11:27
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 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
9 juil. 2008 à 10:59
hello
et avec ; ?
function format_40G_ATA() 
{
	mkntfs -fL D -N 3.1 /dev/hda2 ;
}
0
Je n'arrive pas à reproduire ton erreur mais termine par ";" la dernière commande de tes fonctions au cas où
0
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