Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

環境変数を通さないと動くスクリプトも思った通りに動かない

導入したてのPCではありがちなポカで、今回まさにやらかしたのでメモ。

bashを利用している場合、その環境変数は"bash_profile"か".bashrc"に保存されます。
より深いものに/etc/profileなんてのもあります。
GNU総本山によれば、

  1. /etc/profile
  2. bash_profile
  3. bashrc

という順番で読み込まれるそうです。

さて、本題です。
前回の記事で作ったような、お手製コマンドは格納先パスを環境変数に通してあげないとダメです。
スクリプトのあるディレクトリに飛んで

$ ./SCRIPT

とかやったり、あるいは絶対パス相対パスで魔術をやらないと動かないようなら、パスが通ってません。
お作法では読み込み順が若いbash_profileで書くようなので、そのようにします。

export PATH="/PATH/TO/SCRIPT:$PATH"

その場限りであれば、シェルスクリプト起動時に発行するのもアリといえばアリです。

パスを通すべき範囲について

この辺りは個人の好みによるらしいです。
あまり多くしすぎると、動作が遅くなったり予期せぬ挙動*1をしたりします。
とりあえずホームディレクトリには通しておいた方がいいみたいですね。
お好みで、お手製コマンド群用ディレクトリを用意するのも一手。
腕の良いUNIXハッカーは自家製エイリアス*2と、プロファイルの設定を持って会社から会社へ渡り歩くそうです。

*1:優先度の高いパスに同名の実行可能スクリプトがあったり

*2:誤爆防止や業務効率化のため