Aquí hay un procedimiento esencial para declarar una función permanente:
Abrir ~/.bashrc
archivo 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 ~/.bashrc
declara tu propia función, por ejemplo:
find_dirs(){
find "$1" -type d
}
Guarde y cierre el archivo.
El ~/.bashrc
archivo se lee cada vez que abre un shell interactivo (es decir, una nueva pestaña de terminal, inicia sesión a través de ssh
o abre TTY1 u otra consola virtual). Esto no estará disponible en los archivos de script, porque ~/.bashrc
no se lee para shells no interactivos. Tampoco está disponible si ejecuta bash
con --norc
opción.
Si desea que la función esté disponible inmediatamente en la pestaña abierta actualmente, use el source ~/.bashrc
comando.
Las funciones toman argumentos como los comandos regulares. Por ejemplo, a $1
través de $9
indicar 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.