「python」が引数なしで実行されている場合は、「python」を「ipython」としてのみエイリアスを指定するエイリアス(〜/ .zshrcに)を持つ方が良いと思います(そうでなければプログラムは起動しません)。まず、エイリアスで「引数なし」をどのように表現しますか?第二に、これについてどう思いますか?
答え1
定義によると、シェルエイリアスは条件付きで使用できる方法を提供しません。これは、インタラクティブなプロンプトを介して実行するすべてに適用されます。
これを達成するために関数を使用することができます。 (よりBashでいつエイリアスを使用し、いつスクリプトを使用し、いつ関数を作成しますか?これがなぜ違うのかを学びましょう。 )
function python () {
test -z "$1" && ipython || command python "$@"
}
シェルのrcファイルにある内容のため、シェルはバイナリを直接実行するのではなく、この関数を実行します。最初の引数が空の場合はipythonがトリガーされ、そうでない場合はすべての引数がパス内のPythonバイナリに渡されます(関数ではcommand
なくバイナリが強制的に実行され、再帰自体が発生することを参照してください)。
答え2
zshエイリアスでこれを行うことができるかどうかはわかりませんが、この小さなシェルスクリプトを~/bin
asに貼り付けてみてはいかがですかpython
?
#!/bin/bash
if test -z "$1"; then
exec /usr/bin/ipython
else
exec /usr/bin/python "$@"
fi