web-dev-qa-db-ja.com

`〜/ bin`からシェルスクリプトを実行できません

linuxcommand.orgのこのチュートリアル からシェルスクリプトを書くことを学んでいます。それは言う-

最新のLinuxディストリビューションのほとんどは、各ユーザーが自分が個人的に使用するプログラム用の特定のディレクトリを持っている習慣を奨励しています。このディレクトリはbinと呼ばれ、ホームディレクトリのサブディレクトリです。

私はこれを試しました。しかし、次のエラーが発生します-

foobar: command not found

そのページの後の方で、

一部のディストリビューション、特にUbuntuでは、新しく作成されたbinディレクトリが認識される前に、新しいターミナルセッションを開く必要があります。

これは、ubuntuがこの機能をサポートしていることを意味します。しかし、なぜ機能しないのですか?

Ubuntu 12.04 LTSを使用しています。

5
ShuklaSannidhya

ログインするか、新しいシェルを起動すると、いくつかのスクリプトが解析されます。使用するシェル(ksh、csh、tsch、bash、dash、pinoshなど)に依存するスクリプトと、ログインシェルかどうかは正確に異なります。

Ubuntuのデフォルトを使用している場合は、次のものが含まれている可能性があります。

#PATHを設定して、存在する場合はユーザーのプライベートビンを含めます
 if [-d "$ HOME/bin"]; then 
 PATH = "$ HOME/bin:$ PATH" 
 fi 

つまり、〜/ bin /が既に存在する場合は、検索パスに追加します。
存在しない場合、毎回その場所を検索しようとする理由はありません。追加しないでください。

つまり、〜/ bin /を作成してから新しいシェルを起動するか、作成して手動でパスを追加する必要があります。


「最新のLinuxディストリビューションが奨励する」ことについて。これは、1991年にESIXを実行しているサーバーで最初のUNIXアカウントを取得したときに既に推奨されていました。しかし、今日でもまだ真実です。

4
Hennes