web-dev-qa-db-ja.com

どこからでもシェルスクリプトを起動する

~/scriptsにあるスクリプトをどこからでも実行できますか?

現在の作業ディレクトリに関係なく、./scriptnameを実行したいとします。

8
mreq

~/scripts$PATH環境変数に追加できます。その後、どこからでもscriptnameを実行できます(./scriptnameは現在のディレクトリを示すため、./は実行できません)。

この回答~/bin$PATHに追加する方法を示していますが、もちろん~/scriptsでも同じことができます。

15
elmicha

追加

 export PATH=$PATH:~/scripts

~/.bashrcファイルの最後まで。これにより、bashにscriptnameと入力するだけで、~/scripts/でスクリプトを実行できます。セッションでセッションが機能するには、ログアウトする必要があります(新しいターミナルを開いてスクリプトをテストできます)。

私は通常追加します

 export PATH=$PATH:~/bin

私のパスに移動してから、スクリプトへのシンボリックリンクを作成して、セッションで使用できるプログラムを作成します。

cd ~/bin
ln -s ~/Tools/Eclipse3.7/Eclipse 
# which will create a symlink in ~/bin/ with the name Eclipse
# pointing to ~/Tools/Eclipse3.7/Eclipse which allows me to execute
# the Eclipse in ~/Tools/Eclipse3.7/

パスファイルが優先されることに注意してください。すでにUbuntuからEclipseをインストールしている場合、最初に~/bin/以外のすべての場所でEclipseが検索されます。この動作を変更する場合は、ディレクトリを逆方向にエクスポートするだけです。

export PATH=~/bin:$PATH

スクリプトディレクトリ内のスクリプトが実行可能であることを確認してください。実行可能でない場合、エクスポートは効果がありません。

次のように入力して、使用可能なパスを確認できます。

echo $PATH

すべての環境変数を表示するには、コンソールにenvと入力します。

17
Pascal

二つの方法:

  • ./のような~/scripts/scriptnameの代わりにフルパスでシェルスクリプトを呼び出します
  • シェルスクリプトを含むフォルダーを$PATH環境変数に追加し、scriptnameなどの先頭の./なしでシェルスクリプトを呼び出します
2
Florian Diesch