
ホーム ディレクトリに拡張子が付いた簡単なスクリプトを作成しました。.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
再度実行し、すべてが正しく設定されていることを確認することをお勧めします。