任意のディレクトリからシェルスクリプトを実行する方法

任意のディレクトリからシェルスクリプトを実行する方法

ホーム ディレクトリに拡張子が付いた簡単なスクリプトを作成しました。.shこのスクリプトはホーム ディレクトリで直接実行できますが、自分がいるすべてのディレクトリからスクリプトを実行したいです。どうすればよいでしょうか。

答え1

~/yourscript.sh対話的に、コマンド ラインに入力することでいつでもスクリプトを実行できますが、特に既に作成したスクリプトを呼び出すスクリプトをさらに作成する場合は、非常に制限があります。

より統合された柔軟なアプローチとしては、すべてのスクリプトを 1 つのディレクトリに配置し、そのディレクトリをPATH環境変数に追加します。

これを実行すると、 と入力できるようになりyourscript.sh、どのディレクトリにいても、シェルがスクリプトを見つけて実行します。

通常は次のように行われます。

  1. binホームディレクトリの下にディレクトリを作成し、mvそこにスクリプトを保存します。
  2. すべてのスクリプトを実行可能ファイル(chmod +x)に変更します。
  3. PATH環境変数にディレクトリが含まれていることを確認してください$HOME/bin。一部のシステムでは、デフォルトでディレクトリが自動的に~/.profile追加されるため、変更する前に確認してください。$HOME/binPATH~/.profile

スクリプトを使って説明してみましょう:

mkdir ~/bin
mv ~/*.sh ~/bin
chmod +x ~/bin/*
if ! grep 'PATH=.*HOME/bin' ~/.profile
then
    echo 'export PATH="$HOME/bin:$PATH"' >> ~/.profile
fi
. ~/.profile
echo "$PATH"      # you should see your bin directory
cd /tmp           # change to another random directory
type myscript.sh  # see if the shell finds your scripts

binにディレクトリが表示されている場合はPATH、ログアウトして再度ログインし、別のディレクトリに変更してtype yourscript.sh再度実行し、すべてが正しく設定されていることを確認することをお勧めします。

関連情報