Forum Programmation.shell Pb lancement au démarrage du serveur avec des fonctions externalisées dans un fichier

Posté par  .
Étiquettes :
0
17
sept.
2006
Bonjour,
j'ai un soucis avec un script:
je souhaites pouvoir lancé ce script au démarrage du serveur (je suis fedora code 4).
j'ai mis un lien dans le rc.local vers mon script.

Quand je mets la fonction de montage dans le script principal tout marche bien par contre quand je l'inclus avec . /My-Admin/scripts/admin/Myfonctions.sh (je souhaites me faire une biblio pour mes autres scripts) ça marche pas il monte rien.
si je le lance dans un shell ça marche je pige pas ce qui va pas.

Si vous pouvez m'aider
Merci

Voici le script le fichier de conf et le script de biblio.


#!/bin/bash -x
#########################
##########MyInit.sh#########
#########################
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin/:./
CONF=/My-Admin/etc/init.conf
. /My-Admin/scripts/admin/Myfonctions.sh
MOUNT_My_DIRS

#########################
##########Myconf###########
#########################
My_HOME=/My-Admin
MOUNT=/scripts:/scripts,/etc:/confs,/ca:/ca,/packages:/packages

#########################
##########Myfonctions.sh######
#########################
MOUNT_My_DIRS() {
basedir=$(cat $CONF | grep MY_HOME | cut -d= -f2)
mount_list=$(cat $CONF | grep ^MOUNT= | cut -d= -f2 | tr ',' ' ')
for t in $mount_list
do
src=$(echo $t | cut -d: -f1)
dst=$(echo $t | cut -d: -f2)
mount --bind $basedir$src $dst
done
unset basedir t src dst mount_list
}
  • # voyons voir ...

    Posté par  . Évalué à 1.


    #!/bin/bash -x
    #########################
    ##########MyInit.sh#########
    #########################
    PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin/:./
    CONF=/My-Admin/etc/init.conf
    . /My-Admin/scripts/admin/Myfonctions.sh
    MOUNT_My_DIRS


    je changerais cette ligne par
    source /My-Admin/scripts/admin/Myfonctions.sh

    afin de recuperer tout le contenu de ce fichier dans le script.

    sinon tu ne fais probablement qu'executer le contenu du script.
    • [^] # Re: voyons voir ...

      Posté par  . Évalué à 2.

      Et non !

      En lisant de plus près, tu remarqueras qu'il y a un petit espace, ce qui change tout !

      En réalité, il "source" bien le fichier comme tu lui préconises.

      Sinon par rapport au script, moi j'aurais déclaré la fonction en début de script, ne serait-ce que pour faciliter la relecture, ensuite initialiser les variables et enfin appeler la fonction.

      Le shell ce n'est pas comme le C :-)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.