¿Cómo definir un alias para el comando que estará disponible en el script de shell?

¿Cómo definir un alias para el comando que estará disponible en el script de shell?

Aquí tenéis una parte de mi.bashrc

alias my_command="my_command -1 -2 -3"

y es mi script de shell

#!/bin/sh
my_command blah blah blah

Ocurre en error

./aa: line 2: my_command: command not found

Entonces, ¿cómo definir alias para el comando de la manera correcta?

Respuesta1

Dos cosas que suceden en shells interactivos (expansión de alias y abastecimiento de su .bashrc) no ocurren cuando ejecuta un script. Podrías intentar agregar lo siguiente en la parte superior de tu script:

source ~/.bashrc         # To get the alias
shopt -s expand_aliases  # To allow alias expansion in your script

Podría considerar cambiar mycommanda una función de shell; entonces no tendrías que habilitar la expansión de alias en tu script.

mycommand () {
    my_command -1 -2 -3 "$@"
}

Respuesta2

alias my_command="/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/bin/java"

Después de este tipo

source .bashrc

¿Después de escribir source .bashrcaparece algún error?

Respuesta3

Si su intención es utilizar una versión específica de Java, es posible que desee definir JAVA_HOMEy configurar PATHla variable en consecuencia.

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/bin/java
export PATH=$PATH:export PATH=$PATH:/usr/java/jdk1.5.0_07/bin

Si se trata simplemente de establecer un alias, entonces la sintaxis que utilizó es correcta (por supuesto, con algunos comandos válidos)

alias lm="ls -l"

información relacionada