the que lee editar bashrc bash_profile arrancar archivos archivo bash alias

que - ¿Cómo usar los alias definidos en.bashrc en otros scripts?



vi root bashrc (6)

En ~ / .bashrc, definí algunos alias. Pero no puedo usarlos en otros scripts de shell, donde solo puedo usar alias definidos allí. A pesar de que obtuve bashrc, todavía no funcionó. ¿Que debería hacer?

PD. Estoy en bash


Hay una forma de hacerlo globalmente sin agregar líneas a cada script que ejecuta: usando la variable BASH_ENV .

Aquí está mi configuración para OS X 10.8.5:

/etc/launchd.conf:

setenv BASH_ENV /Users/DK/.env

~ / .bash_profile:

# == Bash setup for interactive shells == # === Environment for all shells === . $BASH_ENV # [skipped]

~ / .env:

# == Setup for all shells == # This is executed for all interactive and for non-interactive shells (e.g. scripts) shopt -s expand_aliases extglob xpg_echo # [skipped] Misc. variables and PATH setup # === General aliases === alias pause=''echo "Press [Return] or [Enter] to continue..."; read'' # read -p does not display prompt in Eclipse console # [skipped]


La respuesta más simple es hacer las 2 cosas importantes o no funcionará.

#!/bin/bash -i # Expand aliases defined in the shell ~/.bashrc shopt -s expand_aliases

Después de esto, los alias que haya definido en ~ / .bashrc estarán disponibles en su script de shell (giga.sh o any.sh) y en cualquier función o shell secundario dentro de dicho script.

Si no lo haces, obtendrás un error:

your_cool_alias: command not found


Robado de enzotib en ask ubuntu: el alias está en desuso en favor de las funciones de shell. Desde la página de manual de bash :

Para casi todos los propósitos, los alias son reemplazados por funciones de shell.

Para crear una función y exportarla a subshells, ponga lo siguiente en su ~/.bashrc :

petsc() { ~/petsc-3.2-p6/petsc-arch/bin/mpiexec "$@" } export -f petsc

Entonces puedes llamar libremente a tu comando desde tus scripts.


Tuve este problema y recargué el archivo con este comando para solucionarlo.

$ source ~/.bashrc


.bashrc tiene un solo propósito: configurar el entorno para sus shells interactivos. Si tiene un código que desea compartir entre su .bashrc y otros scripts, entonces pertenece a un archivo separado que proviene de cada uno de sus .bashrc y shell script.


shopt -s expand_aliases realizar shopt -s expand_aliases en el script además de sourcing ~/.bashrc .