Ho una funzione che desidero fare riferimento e utilizzare tra diversi script. C'è un modo per fare questo? Non voglio riscrivere la stessa funzione per diversi script. Grazie.È possibile utilizzare una funzione di bash in diversi script?
risposta
Certo - nello script, in cui si desidera utilizzare la funzione, è possibile scrivere un comando come
source function.sh
che equivale ad includere il contenuto del function.sh
nel file nel punto in cui il comando è correre. Si noti che function.sh
deve trovarsi in una delle directory in $PATH
; se non lo è, è necessario specificare un percorso assoluto.
Sì, è possibile localizzare tutte le funzioni in un file (o file) comune. Questo è esattamente ciò che faccio con tutte le mie funzioni di utilità. Ho un singolo utility.shinc
nella mia home directory che viene utilizzato da tutti i miei programmi con:
. $HOME/utility.shinc
che esegue lo script nel contesto della shell corrente. Questo è importante: se si esegue semplicemente lo script di inclusione, verrà eseguito in una subshell e tutte le modifiche non si propagheranno alla shell corrente.
È possibile fare la stessa cosa per gruppi di script. Se è parte di un "prodotto", tenderei a mettere tutti gli script e gli script inclusi in una singola directory di shell per assicurare che tutto sia localizzato.
Sì..si può! Aggiungi origine nome_funzione nel tuo script. Preferisco creare variabile eg.VAR = $ (funtion_name), se aggiungi il nome_funzione source dopo #!/Bin/bash allora lo script esegue prima l'attività della funzione importata e quindi l'attività di script corrente, quindi è meglio creare variabile e usato ovunque nella sceneggiatura. grazie ... Spero che funzioni per voi :)
Perché copi le risposte che sono state pubblicate ... 8 anni fa? –
Per una migliore comprensione ... ho postato più brevemente di quello precedente. –
- 1. In bash, è possibile utilizzare una chiamata di funzione come condizione in un'istruzione if?
- 2. Chiamata funzione C in script Bash
- 3. È possibile utilizzare una funzione C come selettore in Cocoa?
- 4. È possibile utilizzare #define all'interno di una funzione? Per esempio,
- 5. È possibile utilizzare il dcast senza una funzione di aggregazione?
- 6. Come uscire da una funzione di script Bash originario
- 7. Accedere agli argomenti dello script Bash all'interno di una funzione
- 8. Bash: Restituisce una stringa dalla funzione bash
- 9. È una funzione valutata in Nashorn riutilizzabile da diversi thread?
- 10. Dichiarare una funzione awk in bash
- 11. Verificare se esiste una funzione da uno script bash
- 12. È possibile utilizzare una funzione lambda per un parametro template?
- 13. È possibile utilizzare la destrutturazione in argomenti di funzione?
- 14. È possibile utilizzare npm per eseguire script in più sottocartelle?
- 15. Chiamare una funzione python da uno script bash
- 16. Come uscire da una funzione in bash
- 17. Come utilizzare una variabile script bash con sed
- 18. Come eseguire una determinata funzione in Bash in parallelo?
- 19. Bash- è possibile utilizzare -uniq per una sola colonna di una riga?
- 20. È possibile utilizzare lo scalap da uno script di scala?
- 21. È possibile utilizzare Haskell per scrivere script di shell?
- 22. È possibile estendere una funzione in TypeScript?
- 23. In BASH, è possibile ottenere il nome della funzione nel corpo della funzione?
- 24. È consigliabile intercettare SIGPIPE in bash script?
- 25. Funzione vuota in BASH
- 26. È possibile utilizzare JScript.NET per creare script su un'applicazione .NET?
- 27. definire una macro funzione simile in bash
- 28. Lo script bash può essere scritto all'interno di una funzione AWS Lambda
- 29. parametri di script in Bash
- 30. È possibile utilizzare una variabile JavaScript in formato HTML semplice?
function.sh può essere ovunque nel PERCORSO. Se bash è in modalità posix, non cercherà nella directory corrente. Questo è tutto spiegato nella pagina man. – camh
Vero, l'ho fatto confondere con altre cose. –
Diciamo che 'function.sh' ha anche del codice. Anche 'source function.sh' eseguirà il codice? – user1527227