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

1

Aqui está uma parte do meu .bashrc

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

e seu 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 no caminho certo?

    
por proofit404 26.02.2013 / 13:00

3 respostas

2

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

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

Você pode considerar a alteração de mycommand para uma função de shell; então você não teria que ativar a expansão de alias no seu script.

mycommand () {
    my_command -1 -2 -3 "$@"
}
    
por 26.02.2013 / 17:56
0

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

Após esse tipo

source .bashrc

Depois de digitar source .bashrc , você está recebendo algum erro?

    
por 26.02.2013 / 13:23
0

Se você pretende usar uma versão específica do Java, convém definir JAVA_HOME e definir a variável PATH 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 for apenas definir um alias, a sintaxe usada está correta (claro, com alguns comandos válidos)

alias lm="ls -l"
    
por 26.02.2013 / 13:30