ホームディレクトリから直接実行できる拡張子を含む単純なスクリプトをホーム.sh
ディレクトリに作成しましたが、現在存在するすべてのディレクトリでスクリプトを実行したいと思います。どうすればいいですか?
答え1
インタラクティブな方法でいつでもコマンドラインに入力してスクリプトを実行できますが、~/yourscript.sh
これは非常に制限的です。特に、すでに作成したスクリプトを呼び出すスクリプトをより多く作成したい場合は、これがさらに重要です。
より統合された柔軟なアプローチは、すべてのスクリプトを1つのディレクトリに配置し、そのディレクトリをPATH
環境変数に追加することです。
これを完了すると入力yourscript.sh
でき、シェルは現在存在するディレクトリに関係なくスクリプトを見つけて実行します。
これは通常、次のように行われます。
bin
ホームディレクトリの下にディレクトリを作成し、mv
その中にスクリプトを置きます。- すべてのスクリプトを実行可能ファイル(
chmod +x
)に変更します。 PATH
環境変数にディレクトリが含まれていることを確認してください$HOME/bin
。一部のシステムでは、デフォルトで~/.profile
ディレクトリが自動的に追加されるため、変更する前にディレクトリを確認してください。$HOME/bin
PATH
~/.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