bashで私が作成したシェルスクリプトを自動的にロードして/ usr / binに入れる方法はありますか?
または、自動的にロードできるようにカスタムシェルスクリプトを別の場所に配置する必要がありますか?
たとえば、contentというスクリプトを作成したとしますmyscript
。
#!/bin/bash
alias e=echo
実行可能にして(chmod a+x
)usr / binに入れます。コマンドラインからeを呼び出すことはできません(試してみると、コマンドが見つからないというメッセージが表示されます)。
私は何が間違っていましたか?
ベストアンサー1
alias
定義したエイリアスは、コマンドが実際に呼び出されるまで適用されません。したがって、これを行うには、次のようにします。
$ source myscript
$ e "Hello"
動作する必要があります。ただし、e
bashを起動するたびに使用できるようにしたいので、これは明らかに理想的ではありません。幸いなことに、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
ファイルをきれいに保つ簡単な方法が提供されます。