回答:
エイリアスは、ほとんどテキストの代替です。したがって、エイリアス定義の後、タイピングdoit
はタイピングと同等cd ~/some/dir; ./my_app; cd -
です。これはコマンドの構文的に正しいリストであり、その戻り値はシーケンスの最後のコマンドの戻り値ですcd -
。
他の回答は、中間コマンドのステータスを保存して返す一般的な方法を示しています。ただし、この特定のケースでは、この一連のアクションを表現するより良い方法があります。別のディレクトリに変更してから元に戻す代わりに、サブシェル内の異なる現在のディレクトリを必要とするアクションを実行して、シェルはまったく変わりません。
doit () {
(cd ~/some/dir && ./my_app "$@")
}
さらに2つの改善を加えました。
&&
なく使用します。;
my_app
cd
my_app
:あなたが実行した場合doit foo bar
、my_app
二つの引数で呼び出されるfoo
とbar
。cd
関数で実行して呼び出し元に影響を与えることができます。