J'ai une fonction que je veux référencer et utiliser à travers différents scripts. Est-ce qu'il y a un moyen de faire ça? Je ne veux pas réécrire la même fonction pour différents scripts. Merci.Une fonction bash peut-elle être utilisée dans différents scripts?
Répondre
Bien sûr - dans votre script, où vous voulez utiliser la fonction, vous pouvez écrire une commande comme
source function.sh
ce qui équivaut à inclure le contenu de function.sh
dans le fichier au point où la commande est courir. Notez que function.sh
doit être dans l'un des répertoires dans $PATH
; Si ce n'est pas le cas, vous devez spécifier un chemin absolu.
Oui, vous pouvez localiser toutes vos fonctions dans un fichier (ou des fichiers) commun (s). C'est exactement ce que je fais avec toutes mes fonctions utilitaires. J'ai un utility.shinc
seul dans mon répertoire qui est utilisé par tous mes programmes avec:
. $HOME/utility.shinc
qui exécute le script dans le contexte de l'enveloppe actuelle. Ceci est important - si vous exécutez simplement le script include, il s'exécutera dans un sous-shell et toutes les modifications ne seront pas propagées au shell actuel.
Vous pouvez faire la même chose pour des groupes de scripts. Si cela fait partie d'un "produit", j'aurais tendance à mettre tous les scripts, et tous les scripts inclus, dans un seul répertoire shell pour s'assurer que tout est localisé.
Oui ... vous pouvez! Ajoutez source nom_fonction dans votre script. Je préfère créer une variable eg.VAR = $ (nom_fonction), si vous ajoutez la source nom_fonction après #!/Bin/bash, alors votre script exécute d'abord la tâche de fonction importée, puis votre tâche de script actuelle, donc il est préférable de créer une variable n'importe où dans le script. merci .. Espoir son travail pour vous :)
Pourquoi copiez-vous les réponses qui ont été postées il y a 8 ans? –
Pour mieux comprendre..J'ai posté plus brièvement que le précédent. –
- 1. Scripts BASH: fichier whiptail select
- 2. Masquer une fonction bash
- 3. Comment supprimer une fonction Bash?
- 4. Une méthode peut-elle être utilisée comme une fonction array_map en PHP 5.2?
- 5. Conversion de scripts de ksh en bash
- 6. DLL nécessitant un enregistrement, utilisée dans différents programmes
- 7. Comment configurer une fonction C++ pour qu'elle puisse être utilisée par p/invoke?
- 8. scripts Bash pour archiver les fichiers, puis copier de nouveaux
- 9. Comment utiliser les expressions régulières dans les scripts bash?
- 10. Comment est-ce que je réutilise une commande dans bash avec différents paramètres?
- 11. En C++ si une fonction membre est virtuelle quand la liaison statique peut-elle être utilisée?
- 12. Variables statiques d'une classe utilisée dans différents AppDomains
- 13. Variables en tant que commandes dans les scripts bash
- 14. Comment créer une bibliothèque de documents partagés dans SharePoint pouvant être utilisée dans des sous-sites?
- 15. Fonction SQL ORACLE pouvant être utilisée dans la partie where d'une instruction select
- 16. Quelle syntaxe doit être utilisée pour WebMessageBodyStyle.Wrapped?
- 17. L'extension ZeroConf peut-elle être utilisée dans Firefox/XULRunner?
- 18. Une macro peut-elle être utilisée pour l'accès en lecture seule à une variable?
- 19. Activation des notifications KDE 4 à partir de scripts bash
- 20. Quelle fonction de tri est utilisée dans NSArray?
- 21. Sys.InvalidOperationException: gestionnaire doit être une fonction
- 22. Existe-t-il une API Subversion pouvant être utilisée pour la programmation dans .NET?
- 23. Une méthode personnalisée doit-elle être utilisée dans la section before (: each)
- 24. Citation non respectée dans une variable bash
- 25. Une file d'attente de messages peut-elle être partagée entre des scripts PHP?
- 26. Deux fonctions ou une fonction avec des paramètres différents?
- 27. Meilleur moyen pour plusieurs liens d'ancrage de référencer une valeur unique pouvant être utilisée en JavaScript
- 28. Une application winform peut-elle être basculée vers une application WPF si l'architecture MVC est utilisée?
- 29. Une feuille de calcul Excel peut-elle être utilisée comme FDU?
- 30. Remplacer la sortie dans une boucle dans le script bash
fonction.sh peut être n'importe où dans votre chemin. Si bash est en mode posix, il ne cherchera pas dans le répertoire courant. Tout est expliqué dans la page de manuel. – camh
Certes, je l'ai mélangé avec d'autres choses. –
Disons que 'function.sh' a aussi du code. Est-ce que 'source function.sh' va aussi exécuter le code? – user1527227