如何定义 shell 脚本中可用的命令别名?

如何定义 shell 脚本中可用的命令别名?

以下是我的一部分.bashrc

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

这是我的 shell 脚本

#!/bin/sh
my_command blah blah blah

发生错误

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

那么,如何正确地为命令定义别名呢?

答案1

交互式 shell 中发生的两件事(别名扩展和 的来源.bashrc)在运行脚本时不会发生。您可以尝试将以下内容添加到脚本顶部:

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

您可以考虑更改mycommand为 shell 函数;这样您就不必在脚本中启用别名扩展。

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"

相关内容