Aquí hay un procedimiento esencial para declarar una función permanente:
Abrir ~/.bashrcarchivo en un editor de texto. No importa qué editor de texto, siempre que sepa cómo usarlo y siempre que abra el/home/<username>/.bashrc
Al final de ~/.bashrcdeclara tu propia función, por ejemplo:
find_dirs(){
find "$1" -type d
}
Guarde y cierre el archivo.
El ~/.bashrcarchivo se lee cada vez que abre un shell interactivo (es decir, una nueva pestaña de terminal, inicia sesión a través de ssho abre TTY1 u otra consola virtual). Esto no estará disponible en los archivos de script, porque ~/.bashrcno se lee para shells no interactivos. Tampoco está disponible si ejecuta bashcon --norcopción.
Si desea que la función esté disponible inmediatamente en la pestaña abierta actualmente, use el source ~/.bashrccomando.
Las funciones toman argumentos como los comandos regulares. Por ejemplo, a $1través de $9indicar los parámetros posicionales cuando llama a una función. En el ejemplo anterior find_dirs, solo toma un parámetro posicional y se llamaría como find_dirs /etc. También puede usar $@para referirse a todos los parámetros posicionales. Las funciones también aceptan la redirección. Puedes llamar a una función con find_dirs $1 > /dev/null; También podríamos declararlo de la siguiente manera:
find_dirs(){
find "$1" -type d
}
Nota de man bash: "Las funciones se ejecutan en el contexto del shell actual; no se crea ningún proceso nuevo para interpretarlas". Eso significa que también debe tener en cuenta las funciones que tienen la capacidad de alterar su entorno de ejecución de shell: cambiar las variables y la configuración del terminal.