/usr/binからシェルスクリプトを自動ロードする

/usr/binからシェルスクリプトを自動ロードする

bashで私が作成したシェルスクリプトを自動的にロードして/ usr / binに入れる方法はありますか?

または、自動的にロードできるようにカスタムシェルスクリプトを別の場所に配置する必要がありますか?

たとえば、contentというスクリプトを作成したとしますmyscript

#!/bin/bash
alias e=echo

実行可能にして(chmod a+x)usr / binに入れます。コマンドラインからeを呼び出すことはできません(試してみると、コマンドが見つからないというメッセージが表示されます)。

私は何が間違っていましたか?

ベストアンサー1

alias定義したエイリアスは、コマンドが実際に呼び出されるまで適用されません。したがって、これを行うには、次のようにします。

$ source myscript
$ e "Hello"

動作する必要があります。ただし、ebashを起動するたびに使用できるようにしたいので、これは明らかに理想的ではありません。幸いなことに、bashはシェルの起動時に自動的にコマンドを実行するいくつかの方法を提供します。 Bashの起動方法の詳細については、以下を参照してください。マニュアルページ。私たちの目的のためには、~/.bashrcシェルの起動時に実行されること(つまり、ホームディレクトリに「.bashrc」というファイル)があることを知るだけで十分です。起動時にエイリアスを使用できるようにする1つの方法は、最後に次の行を追加することです~/.bashrc

source myscript

ただし、必要なすべてのエイリアスに対してこれを行うと、/usr/binフォルダが混乱する可能性があります。また、マルチユーザーシステムを使用している場合は、/usr/bin/このようなスクリプトを入力すると他のユーザーにも問題が発生する可能性があります。したがって、内部にエイリアスを入れて別のスクリプトを捨てることをお勧めします.bashrc。 Ubuntu を使用しているので、.bashrcファイルには次のような内容がある場合があります。

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases 
fi

このコードはホームディレクトリでファイル呼び出しを見つけ、.bash_aliasesそのファイル内のすべてのエントリを実行します。これがある場合、またはこのコードをに追加する場合は、エイリアスも含めることが.bashrcできます~/.bash_aliases。これにより、すべてのエイリアスを1つの場所に保存し、.bashrcファイルをきれいに保つ簡単な方法が提供されます。

おすすめ記事