Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/04/2017, à 16:57

cristobal78

[resolu]fonctions bash personnelles : où et comment les stocker ?

Bonjour à tous

je commence à écrire mes premières fonctions. Elles marchent ! smile

Mais certaines de ces fonctions pourraient me resservir dans d'autres scripts.
Par exemple dans script1 disons que j'utilise une fonction perso appelée "oui_non" qui sert (c'est un exemple !) à récupérer la réponse "oui" ou "non" à une question dans script1.
Maintenant j'ai un script2 et je voudrais y introduire/ invoquer la fonction "oui_non".

La seule méthode que connaisse pour l'instant c'est de faire un copier des lignes de la fonction depuis script1 et de les coller dans script2.
Ça parait lourdingue.

N'y a t il pas un moyen de  stocker mes fonctions perso  une bonne fois pour toute dans une sorte de bibliothèque perso genre "/home/biblio-de-mes-fonctions/ ..."  d'où je pourrais les appeler directement dans le corps de tout nouveau script ?

a+

Dernière modification par cristobal78 (Le 05/04/2017, à 16:39)


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#2 Le 03/04/2017, à 17:18

helias

Re : [resolu]fonctions bash personnelles : où et comment les stocker ?

Bonjour Cristobal,
Comme il est inutile de ré-inventer la roue ... je te propose cette vidéo qui t'aidera sûrement dans ton projet.
Sans vouloir faire de pub, je te conseil les quelques vidéos que la chaine propose a la suite sur linux.

Bonne continuation,
Hélias

Hors ligne

#3 Le 03/04/2017, à 17:54

Hizoka

Re : [resolu]fonctions bash personnelles : où et comment les stocker ?

Salut, un peu de lecture : http://abs.traduc.org/abs-fr

cat fichier
=> function test
=> {
=> echo "bonjour"
=> }

test
=> [rien]

source fichier

test
=> bonjour

donc un petit source devrait répondre à ta question.

. fichier

fonctionne aussi.

Dernière modification par Hizoka (Le 03/04/2017, à 17:55)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#4 Le 03/04/2017, à 20:09

cristobal78

Re : [resolu]fonctions bash personnelles : où et comment les stocker ?

Bonjour et merci de vos réponses

@helias
j'ai été voir ces video inconnues de moi. Intéressantes mais vraiment trop succinctes.
Par ailleurs s'il y en a bien une sur comment écrire une fonction, ce que je sais faire, je n'ai pas vu réponse à ma question au post #1 à savoir : peut on stocker les fonctions et où ?"

@hizoka
si j'ai bien compris ton post il faut mettre le mot clé (Est-ce le bon terme ?)  "source" suivi du nom du fichier qui contient la fonction recherchée ?
J'ai essayé sur un script et ça a l'air de marcher. smile

Donc si j'ai bien tout compris il ne me reste plus qu'à écrire un script que l’appellerai "biblio" et  à y mettre toutes mes fonctions.
Ensuite pour les utiliser dans un nouveau script il me suffira de les appeler  en y introduisant au bon endroit ces 2 lignes :

source biblio
la_fonction_que_je_veux

J'ai tout bon ???  smile

Dernière modification par cristobal78 (Le 03/04/2017, à 20:09)


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#5 Le 03/04/2017, à 23:32

Hizoka

Re : [resolu]fonctions bash personnelles : où et comment les stocker ?

C'est ça.

Mais sinon tu peux mettre tes fonctions dans ton fichier ~/.bashrc
ce fichier est chargé à chaque démarrage de terminal.

Mais je te conseille vraiment de lire les infos du lien que je t'ai donné.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#6 Le 04/04/2017, à 01:27

cristobal78

Re : [resolu]fonctions bash personnelles : où et comment les stocker ?

ok, compris.
Pour ton lien je le connaissais déjà, de même que le cours de F. Lang ou de E. Sanchis où j'ai appris le peu que je sais mais je n'ai trouvé dans aucun des 3 la réponse à ma question concernant le stockage des fonction perso (post #1).
De même qu'on y trouve pas non plus le mot "source" que tu m'a suggéré (post #3),  sauf erreur de lecture de ma part of course  smile


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#7 Le 04/04/2017, à 04:13

Watael

Re : [resolu]fonctions bash personnelles : où et comment les stocker ?

source est un bashisme.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#8 Le 04/04/2017, à 06:04

pingouinux

Re : [resolu]fonctions bash personnelles : où et comment les stocker ?

Bonjour,

$ type source
source is a shell builtin
$ help source
source: source filename [arguments]
    Execute commands from a file in the current shell.
    
    Read and execute commands from FILENAME in the current shell.  The
    entries in $PATH are used to find the directory containing FILENAME.
    If any ARGUMENTS are supplied, they become the positional parameters
    when FILENAME is executed.
    
    Exit Status:
    Returns the status of the last command executed in FILENAME; fails if
    FILENAME cannot be read.

Hors ligne

#9 Le 04/04/2017, à 08:57

Hizoka

Re : [resolu]fonctions bash personnelles : où et comment les stocker ?

Du coup quel est le meilleur moyen si on veut un peu de portabilité ?


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#10 Le 04/04/2017, à 12:56

cristobal78

Re : [resolu]fonctions bash personnelles : où et comment les stocker ?

wahou !!
Hizoka, watael et maintenant pingouinux qui s'intéressent à mon post !!! Ça me rassure et mon questionnement ne doit pas etre si bête que ça !  smile

Cela dit moi qui croyais que le "man" était la source universelle d'info, la source  des Dieux en quelque sorte. Quelle déception :

moi@buro-dell:[$~]> man source
Aucune entrée de manuel pour source
moi@buro-dell:[$~]> man type
Aucune entrée de manuel pour type

Pas de bol.
Donc il faut passer à autre chose comme type et help que je ne connaissais pas.

moi@buro-dell:[$~]> type source
source est une primitive du shell
moi@buro-dell:[$~]> help source
source: source nom_fichier [arguments]
    Execute des commandes depuis un fichier dans le shell actuel.
    
    Lit et exécute des commandes depuis NOMFICHIER dans le shell actuel.  Les
    éléments dans $PATH sont utilisés pour trouver le répertoire contenant NOMFICHIER.
    Si des ARGUMENTS sont fournis, ils deviennent les paramètres de position
    lorsque NOMFICHIER est exécuté.
    
    Code de sortie :
    Renvoie le code de la dernière commande exécutée dans NOMFICHIER, ou le code
    d'échec si NOMFICHIER ne peut pas être lu.

Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#11 Le 04/04/2017, à 16:55

Watael

Re : [resolu]fonctions bash personnelles : où et comment les stocker ?

Hizoka a écrit :

Du coup quel est le meilleur moyen si on veut un peu de portabilité ?

le point :

$ help .
.: . nom_fichier [arguments]
    Exécute des commandes depuis un fichier dans le shell actuel.

ou man dot.

cristobal78 a écrit :

Pas de bol.

$ type type
type est une primitive du shell

la description de cette commande se trouve donc dans man bash.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#12 Le 05/04/2017, à 16:37

cristobal78

Re : [resolu]fonctions bash personnelles : où et comment les stocker ?

comme je l'écrivais au post #4 je me suis érit un fichier texte (pas un script donc pas de shebang) dans lequel j'ai empilié mes quelques fonctions perso.
J'ai appelé ce fichier "biblio" et je vois que j'arrive à appeler les fct de mon choix depuis un script quelconque en mettant les 2 lignes de hizoka à savoir :

source biblio
la_fonction_de_mon_choix

pb résolu !
merci à tous.

Dernière modification par cristobal78 (Le 05/04/2017, à 16:38)


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne