1

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

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

и это мой сценарий оболочки

#!/bin/sh
my_command blah blah blah

Встречается ошибка

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

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

3 ответа3

2

Две вещи, которые происходят в интерактивных оболочках (расширение псевдонимов и получение вашего .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 "$@"
}
0

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

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

source .bashrc

После ввода source .bashrc вы получаете какую-либо ошибку?

0

Если вы намерены использовать определенную версию 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"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .