ITエンジニアkenkenのアウトプット場

技術トレンド、読んだ書籍、やってみた系について書いていきます。

シェルスクリプトの実行方法

たまに忘れることがあるので、シェルスクリプトの実行方法と特徴について備忘録。

シェルスクリプトは3つの実行方法がある。各実行方法によって動作が異なる。

  1. ファイル名で実行
  2. シェルの引数として実行
  3. sourceコマンドで実行

1. ファイル名で実行

  • シバンを解釈して実行される
  • サブシェルが起動される
  • ファイルに実行権限が必要

次のように実行する。シバンを解釈して実行される。

$ ./shell_script.sh

例えば、シバンに#!bin/bash -xと記述されていたら、実質的には/bin/bash -x ./shell_script.shと実行しているのと同じ。

2. シェルの引数として実行

  • シバンが書いてあっても解釈されない
  • サブシェルが起動される
  • ファイルに実行権限は不要

シバンは解釈されない。もちろんシバンに記述したオプションも解釈されない。

3. sourceコマンドで実行

  • シバンが書いてあっても解釈されない
  • カレントシェルで実行される(サブシェルは起動されない)
  • ファイルに実行権限は不要

カレントシェルで実行するので、エイリアス環境変数といったシェル環境の影響を受ける。また、カレントシェルに影響も与える。(カレントシェルで実行しているので当然)

~/.bashrc~/.bash_profileを更新したときに環境に反映させるのに使ったり、異なるシェルスクリプト間で、同一の値を参照したい場合に使ったりする。

参考

www.sbcr.jp