Hacemos una verificación profunda cada enunciado de nuestra web con la meta de mostrarte en todo momento información certera y actual.
Solución:
Algunas opciones:
-
En su script de shell, use la ruta completa en lugar de un alias.
-
En su script de shell, establezca una variable, sintaxis diferente
petsc='/home/your_user/petsc-3.2-p6/petsc-arch/bin/mpiexec' $petsc myexecutable
-
Utilice una función en su secuencia de comandos. Probablemente mejor si
petsc
es complejofunction petsc () command 1 command 2 petsc myexecutable
-
Obtenga sus alias
shopt -s expand_aliases source /home/your_user/.bashrc
Probablemente no desee obtener su .bashrc
, entonces IMO uno de los primeros 3 sería mejor.
Los alias están en desuso en favor de las funciones de shell. Desde la página del 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 subcapas, ponga lo siguiente en su ~/.bashrc
:
petsc()
~/petsc-3.2-p6/petsc-arch/bin/mpiexec "[email protected]"
export -f petsc
Entonces puede llamar libremente a su comando desde sus scripts de shell.
Las funciones de shell y los alias se limitan al shell y no funcionan en scripts de shell ejecutados. Alternativas para su caso:
-
(si no te molestas en usar
mpiexec
en vez depetsc
) Agregar$HOME/petsc-3.2-p6/petsc-arch/bin
para ustedPATH
variable. Esto se puede hacer editando~/.profile
y adjuntando:PATH="$HOME/petsc-3.2-p6/petsc-arch/bin:$PATH"
Vuelva a iniciar sesión para aplicar estos cambios
-
Crea el directorio
~/bin
y-
hacer un script de envoltura llamado
petsc
que contiene:#!/bin/sh exec ~/petsc-3.2-p6/petsc-arch/bin/mpiexec "[email protected]"
-
si el programa lo permite, puede omitir el shellscript y crear un enlace simbólico usando el comando:
ln -s ~/petsc-3.2-p6/petsc-arch/bin/mpiexec ~/bin/petsc
-
Sección de Reseñas y Valoraciones
Si crees que te ha sido de provecho este artículo, sería de mucha ayuda si lo compartieras con otros juniors así contrubuyes a difundir nuestra información.