Como definir o alias do comando que estará disponível no shell script?

Como definir o alias do comando que estará disponível no shell script?

Aqui está uma parte da minha.bashrc

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

e é meu script de shell

#!/bin/sh
my_command blah blah blah

Ocorre em erro

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

Então, como definir aliases para o comando da maneira certa?

Responder1

Duas coisas que acontecem em shells interativos (expansão de aliases e origem de seu .bashrc) não ocorrem quando você executa um script. Você pode tentar adicionar o seguinte no topo do seu script:

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

Você pode considerar mudar mycommandpara uma função shell; então você não precisaria ativar a expansão de alias em seu script.

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

Responder2

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

Depois deste tipo

source .bashrc

Depois de digitar source .bashrcvocê está recebendo algum erro?

Responder3

Se sua intenção é usar uma versão específica do Java, você pode querer definir JAVA_HOMEe definir PATHa variável de acordo.

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

Se se trata apenas de definir um alias, então a sintaxe que você usou está correta (é claro, com alguns comandos válidos)

alias lm="ls -l"

informação relacionada