如何為 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"

相關內容