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