bashシェルのエイリアスと関数の違いを知りたい-どちらをいつ使うべきか。
関数は引数を取ることができるので、関数ははるかに強力です-私は主にネットブックを持ち、エネルギーと処理能力を節約したいので、特にパフォーマンスの違いについてもう少し知りたいですbashの機能を拡張するこの2つの方法の1つです。
bashシェルのエイリアスと関数の違いを知りたい-どちらをいつ使うべきか。
関数は引数を取ることができるので、関数ははるかに強力です-私は主にネットブックを持ち、エネルギーと処理能力を節約したいので、特にパフォーマンスの違いについてもう少し知りたいですbashの機能を拡張するこの2つの方法の1つです。
回答:
エイリアスはニックネームと考えてください。頻繁に実行するが短くしたいコマンドがあるかもしれません。
例として、コマンドラインでデスクトップに直接行きたいことがよくあるので、これを行うことができます
alias desktop="cd ~/Desktop"
それから、あなたはただタイプしてください
desktop
ターミナルで、それはcd ~/Desktop
あなたのために実行されます。
関数にはロジックが含まれています。関数では、いくつかの異なるプログラムを呼び出す場合があります。これは簡単なエコー関数です
function e {
echo $1
echo $1 $1
echo $1 $1 $1
}
呼び出すとエイリアスのように見えることがありますが
e Hello
あなたのe()は多くの異なることを起こすことができます。上記は単純な例です。
エイリアスは、単純な使用例のために予約する必要があります。個人的な例- rm
このようにコマンドを置き換えました
alias rm='trash-put'
rmを実行すると、ディスクから削除されるのではなく、ゴミ箱に送られます。これは、重要なファイルを(ときどき)誤って削除する可能性があるターミナルでの不器用さに対応します。
覚えておく必要がある関数はロジックの一部です。通常、関数をスタンドアロンで使用することはありません。大きなスクリプトの一部になります。すべてのファイルを受け取り、それらの名前を豚のラテン語バージョンに変更するスクリプトを想像してみてください。それを行うにはさまざまな方法があることを無視してください。
しかし、実行できることは、ディレクトリ内のすべてのファイルをループして、ファイルパスをRenameAsPigLatin関数に渡すことです。RenameAsPigLatin関数には、数字が関係する追加のロジックが含まれている場合があります。この場合、数字で終わるファイルの名前を変更しないように決定します。
すぐに、それを関数として持つことの利点を確認できます。残りのスクリプトは必要に応じてさまざまなディレクトリをトラバースできますが、関数は奇妙なルールによる名前の変更に集中できます。
エイリアスは、長いコマンドを入力したり、常に同じオプションを繰り返すことを避けるためにコンソールで使用される単純なショートカットです。
古典的な例は次のようになります。
alias ll='ls -l'
Aliasはインタラクティブコンソールでのみ機能し、スクリプトで使用するためのものではありません。
関数はスクリプトまたはコンソールで使用できますが、スクリプトでより頻繁に使用されます。
単に値で置き換えられるエイリアスとは異なり、関数はbashシェルによって解釈されます。
関数はエイリアスよりもはるかに強力であり、非常に複雑なプログラムを構築するために使用できます。