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
.