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

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

ホームディレクトリから直接実行できる拡張子を含む単純なスクリプトをホーム.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

関連情報