logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 01-07-2018 22:05:12

Patriboom
Membre
Lieu : Arctique canadien
Distrib. : Bookworm (12)
Noyau : Linux 6.1.0-13-amd64
(G)UI : MATE
Inscription : 25-12-2008
Site Web

[Résolu] Un script dans une fonction

Bonjour,

en attendant de comprendre, j'avais créé un deuxième script que j'appelais à partir du principal.
Maintenant que tout fonctionne bien, je veux comprendre et intégrer toutes commandes dans un seul fichier.

J'avais


#Début du code

eval "./plongee.xfer"

#le code se poursuit

 



J'ai

function Televerse(){
  SITFTP="ftp.adresse.caca"
  USAFTP="usager@adresse.caca"
  MPSFTP="MotDePasse"
  PRTFTP=21
  source plongee.cnf

  ftp -i -n $SITFTP $PRTFTP << END_SCRIPT
    quote USER $USAFTP
    quote PASS $MPSFTP
    bin
    put plongee.cnf $1.log
    cd Contenu
    put $2
    quit
  END_SCRIPT
}

#blabalabala

FUNC=$(declare -f Televerse)
sudo bash -c "$FUNC; Televerse $variable1 $variable2"

#Le code se poursuit
 



Mais voilà, que la réponse est la suivante:


./plongee.sh: ligne 132: avertissement :« here-document » à la ligne 20 délimité par la fin du fichier (au lieu de « END_SCRIPT »)
./plongee.sh: ligne 133: erreur de syntaxe : fin de fichier prématurée
 



Vous l'avez deviné, ma ligne 20 se lit ainsi:  ftp -i -n $SITFTP $PRTFTP << END_SCRIPT


J'ai cru comprendre que la ligne 20 disait  « Lis ça jusqu'à la balise  END_SCRIPT » 
scratchhead.gif
Mais non!  Car si c'était aussi facile, ça marcherait.

Pouvez-vous m'aider (encore!) 

Merci à l'avance.

Dernière modification par Patriboom (02-07-2018 13:17:25)


Portez la paix
Patrick Allaire, ptre

Hors ligne

#2 02-07-2018 06:42:24

valdé
Administrateur
Lieu : Paris
Distrib. : Debian GNU/Linux trixie/sid x86_64
Noyau : 6.6.13-amd64
(G)UI : MATE 1.26.1
Inscription : 04-10-2016

Re : [Résolu] Un script dans une fonction

Je vois que tu as trouvé ce modèle sur internet. Il est bon de toute manière.
Je ne vois qu'un problème d'espace à mon avis.
Pour moi regarde du côté d'un espace insécable pourri glisser au milieu de tes commandes.
Et vois si en collant ton EOF au début de la ligne résout la chose. J'ai remarqué que si ce n'était pas le cas, il attendait encore de l'écriture.

~# Where there is a shell, there is a way.

Hors ligne

#3 02-07-2018 07:05:00

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : [Résolu] Un script dans une fonction

Peut-être supprimer l'espace :

<< END_SCRIPT


Ainsi :

<<END_SCRIPT


En référence au tuto cat :
https://debian-facile.org/doc:systeme:c … de-fichier ? roll


saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#4 02-07-2018 10:03:38

valdé
Administrateur
Lieu : Paris
Distrib. : Debian GNU/Linux trixie/sid x86_64
Noyau : 6.6.13-amd64
(G)UI : MATE 1.26.1
Inscription : 04-10-2016

Re : [Résolu] Un script dans une fonction

smolski a écrit :

Peut-être supprimer l'espace :

<< END_SCRIPT


Ainsi :

<<END_SCRIPT


En référence au tuto cat :
https://debian-facile.org/doc:systeme:c … de-fichier ? roll



Yep.
Et la fermeture doit être coller en début de ligne.
Testé à l'instant.


~# Where there is a shell, there is a way.

Hors ligne

#5 02-07-2018 10:34:16

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : [Résolu] Un script dans une fonction

\o/
Voir le tuto : C'est résolu ! Bravo mais il faut l'indiquer dans l'titre.

Et on aboule le point choco df dans la besace au jojo ! big_smile

saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#6 02-07-2018 13:16:13

Patriboom
Membre
Lieu : Arctique canadien
Distrib. : Bookworm (12)
Noyau : Linux 6.1.0-13-amd64
(G)UI : MATE
Inscription : 25-12-2008
Site Web

Re : [Résolu] Un script dans une fonction

Ah ces espaces!
Peut-être qu'au Québec avons-nous trop de ces grands espaces et que je me sens obligé d'en poivrer un peu partout. roll

Testé et fonctionnel
Je préfère des balises significatives, alors j'ai modifié à la faveur de FTP_CONNEX ( pour « Connexion FTP » )   C'est plus clair.


Merci, les amis.
Ci-bas, copie du code pour quelqu'un qui chercherait ultérieurement.

#Autre code avant

function Televerse(){
  SITFTP="ftp.adresse.qc"
  USAFTP="identifiant@adresse.qc"
  MPSFTP="MotDePasse"
  PRTFTP=21
  source fichierSource.cnf

  ftp -i -n $SITFTP $PRTFTP <<FTP_CONNEX
    quote USER $USAFTP
    quote PASS $MPSFTP
    bin
    put plongee.cnf $1.log
    cd Contenu
    put $2
    quit
FTP_CONNEX
}

#Autre code après

#Appel du script
  FUNC=$(declare -f Televerse)
  sudo bash -c "$FUNC; Televerse $variable1 $variable2"

#.... vers la fin du fichier
 

Dernière modification par Patriboom (02-07-2018 13:19:13)


Portez la paix
Patrick Allaire, ptre

Hors ligne

#7 02-07-2018 13:17:00

Patriboom
Membre
Lieu : Arctique canadien
Distrib. : Bookworm (12)
Noyau : Linux 6.1.0-13-amd64
(G)UI : MATE
Inscription : 25-12-2008
Site Web

Re : [Résolu] Un script dans une fonction

Oh là!
Oh là!

Je les veux ces points choco, hein ... c'est mon fil après tout et je mets « Résolu »  !

smolski a écrit :

\o/
Voir le tuto : C'est résolu ! Bravo mais il faut l'indiquer dans l'titre.

Et on aboule le point choco df dans la besace au jojo ! big_smile


Portez la paix
Patrick Allaire, ptre

Hors ligne

#8 02-07-2018 13:26:31

Patriboom
Membre
Lieu : Arctique canadien
Distrib. : Bookworm (12)
Noyau : Linux 6.1.0-13-amd64
(G)UI : MATE
Inscription : 25-12-2008
Site Web

Re : [Résolu] Un script dans une fonction

Question complémentaire.
Est-ce qu'il pourrait y avoir conflit si deux scripts dans autant de fonctions étaient nommés de la même façon?

Ceci, par exemple, ferait-il problème


#Définition des variables

function premiere() {
  echo "Ceci est ma première fonction"
  ftp -i -n  <<FTP_CONNEX
    bin
    put UnAutreFichier.txt
    cd UnPremierDossier
    put $2
    quit
FTP_CONNEX
  echo "Ceci conclut ma première"
}

function Televerse(){
  echo "Ceci est ma deuxième fonction"
  ftp -i -n  <<FTP_CONNEX
    bin
    put fichier1.txt
    cd Contenu
    put $2
    quit
FTP_CONNEX
  echo "Fin de la deuxième fonction"
  echo "Merci de votre service, amie fonctionnelle 2"
}



 


Portez la paix
Patrick Allaire, ptre

Hors ligne

#9 02-07-2018 13:30:15

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : [Résolu] Un script dans une fonction

Patriboom a écrit :

Oh là!
Oh là!


Que nenni, le réglement et rien qu'le réglement le dit ainsi... big_smile


saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#10 02-07-2018 13:38:33

Patriboom
Membre
Lieu : Arctique canadien
Distrib. : Bookworm (12)
Noyau : Linux 6.1.0-13-amd64
(G)UI : MATE
Inscription : 25-12-2008
Site Web

Re : [Résolu] Un script dans une fonction

Gourmand, va!

Portez la paix
Patrick Allaire, ptre

Hors ligne

#11 02-07-2018 13:51:50

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : [Résolu] Un script dans une fonction

file-R9a2e39b24a7df49acfb2e6267e244236

saque eud dun (patois chtimi : fonce dedans)

Hors ligne

Pied de page des forums