Как определить псевдоним для команды, который будет доступен в скрипте оболочки?

Как определить псевдоним для команды, который будет доступен в скрипте оболочки?

Вот часть моего.bashrc

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

и это мой скрипт оболочки

#!/bin/sh
my_command blah blah blah

Это происходит в ошибке

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

Итак, как правильно определить псевдонимы для команды?

решение1

Две вещи, которые происходят в интерактивных оболочках (расширение псевдонимов и получение вашего источника .bashrc), не происходят при запуске скрипта. Вы можете попробовать добавить следующее в начало вашего скрипта:

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

Вы можете рассмотреть возможность перехода mycommandна функцию оболочки; тогда вам не придется включать расширение псевдонимов в вашем скрипте.

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

решение2

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

После этого типа

source .bashrc

source .bashrcВозникают ли какие-либо ошибки после ввода текста ?

решение3

Если вы намерены использовать определенную версию Java, то вам, возможно, захочется определить JAVA_HOMEи установить PATHпеременную соответствующим образом.

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

Если речь идет просто о настройке псевдонима, то синтаксис, который вы использовали, правильный (конечно, с некоторыми допустимыми командами)

alias lm="ls -l"

Связанный контент