シェル スクリプトで使用できるコマンドのエイリアスを定義するにはどうすればよいでしょうか?

シェル スクリプトで使用できるコマンドのエイリアスを定義するにはどうすればよいでしょうか?

これは私の.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

対話型シェルで発生する 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 "$@"
}

答え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"

関連情報