後で使用するためにbashに関数を保存する方法は?

後で使用するためにbashに関数を保存する方法は?

IPからMACアドレスを取得する機能があります。

ip2arp()  {
   local ip="$1"
   ping -c1 -w1 "$ip" >/dev/null
   arp -n "$ip" | awk '$1==ip {print $3}' ip="$ip"
   }

今後使用する正しい方法は何ですか? /usr/binにshとして保存して実行可能にしますか、それともホームディレクトリに保存してbashにエイリアスを作成しますか?正しいと正しい方法がありますか?

答え1

個人的な目的にのみ使用する場合は、シェルの初期化ファイルに関数として追加できます~/.bashrc

Bashのさまざまな初期化ファイルの概要については、次を参照してください。Bash初心者ガイド:

また見てくださいバッシュリファレンスマニュアル:

一般的なパターンは関数定義を~/.bashrcファイルに入れます~/.bash_profile

しかし、どのプロファイルを使用するかは、オペレーティングシステム、ターミナルアプリケーション、および好みによって異なることに注目する価値があります。たとえば、AskDifferent の次の投稿をご覧ください。

StackOverflowの次の記事も参照してください。

または、スクリプト用のプライベートディレクトリ(私が使用するものなど~/local/bin)を作成し、そのディレクトリを設定ファイルのPATHに追加することもできますexport PATH="${HOME}/local/bin:${PATH}

他のユーザーが使用できるようにするには/usr/local/bin(代わりに/usr/bin)スクリプトに入れることができます。

実行可能ファイルを配置する場所の詳細については、次の記事を参照してください。

答え2

この関数をコマンドラインでのみ使用したい場合は、初期化ファイルに入れることができます。

他のシェルスクリプトでもこれを使用するには、次の手順を実行する必要があります。

  • 必要なシェルスクリプトから取得した1つ以上の関数定義で構成されたライブラリを中心にプログラミング環境を設定できます。

  • 関数を使うという考えを捨て、関数から実行可能なスクリプトを作成します。

あなたの関数がシェル変数を操作しない限り、どの方向に行くかはあなた次第です。関数の代わりに別々の実行可能スクリプトを使用すると、確実に次から実行できるという利点があります。どのbashだけでなく、他のプログラム。

関連情報