Как мне повторно использовать функцию в нескольких сценариях?

Wicd - очень хороший менеджер Wi-Fi. Он использует традиционные инструменты для управления сетью без дополнительных слоев. Это соответствует вашим требованиям.

Не забудьте остановить и удалить все пакеты NetworkManager, чтобы избежать конфликтов.

5
05.06.2018, 19:57
2 ответа

Esta pregunta puede ser marcada por ser subjetiva, pero creo que generalmente se acepta como mejor práctica usar bibliotecas para el código de uso común -en lugar de reinventar la rueda cada vez. sourceing un script que define funciones y variables es la forma de shell para hacer esto, por lo que diría que sí, tener scripts de biblioteca y sourceing ellos es probablemente una buena práctica.

De hecho, voy más allá y tengo un directorio binen mi PATHcon herramientas y secuencias de comandos que uso con frecuencia; algunos de esos scripts de biblioteca están allí, así que puedo sourceusarlos fácilmente en mi consola interactiva.

1
27.01.2020, 20:41

En bash, esa es una buena manera de hacerlo, sí.

Obtener el script de "biblioteca" usando sourceo .sería una solución adecuada a su problema de querer compartir una definición de función entre dos o más scripts. Cada secuencia de comandos que necesitaba acceso a la función (s )definida en la secuencia de comandos de "biblioteca" (s )generaría el archivo necesario (s ), probablemente en la parte superior de la secuencia de comandos.

Esto le permitiría recopilar funciones relacionadas en un solo script de "biblioteca" y obtener acceso a ellas.

No del todo relacionado, pero el shell bashtambién tiene la capacidad de generar automáticamente un archivo al ejecutar un shell no -interactivo (, es decir, un script ). Esto puede usarse para configurar un entorno específico para el script:

BASH_ENV="$HOME/stuff/script.env"./myscript

... donde script.envpuede hacer cualquier cosa, desde definir funciones y establecer variables de entorno o shell, hasta obtener otros archivos, etc.


Algunos shells, como ksh93, tienen una variable de entorno que apunta a un directorio que puede contener scripts de definición de funciones como estos. En ksh93, esta variable se llama FPATH. Un script, $FPATH/foo, contendría una función llamada foo,que se encontraría automáticamente cuando el usuario escriba fooen la línea de comando (o en un script ). Que yo sepa, el shell bashno tiene esta funcionalidad específica.

Otros shells tienen otras formas de funcionalidad de "carga automática -".

4
27.01.2020, 20:41

Теги

Похожие вопросы