シェルスクリプトの実行方法は大きく分けて2つある

2020-05-03 ShellScripts

はじめに

ブログの記事を作成するにあたってhugoコマンドやdeployするまでの
gitコマンドの実行を自動化するためにシェルスクリプトを書く機会がありました。
その中でシェルスクリプトの実行方法に種類があることがわかったので調べた結果をまとめます。

環境

  • Windows 10 Home (1903)

  • Git for Windows (v2.26.2)

参考記事

==

コマンドを実行した現在のbashプロセスを用いてスクリプトを実行する

source shell_script.sh
. shell_script.sh
  • インタラクティブシェルを起動した時に読み込まれる.bashrcで定義されている内容を使用できる

  • スクリプト内でexitを記述しているとshell_script.shを実行したインタラクティブシェルが終了する

  • スクリプトで定義、変更した変数はスクリプトの実行後もインタラクティブシェル内で使用できる

  • シェバング(#!/bin/bash)を記述しなくてもスクリプトの実行ができる

  • shell_script.sh内の最後に実行したコマンドの終了ステータスを返す

新たなbashプロセスを立ち上げてスクリプトの内容をコマンドとして実行する

./shell_script.sh
bash shell_script.sh
sh shell_script.sh

所感

インタラクティブシェル内での下準備としては同一プロセス内で実行し、
インタラクティブシェル内のオペレーションと独立したことを行うのであれば別プロセスという使い分けかな
また、後者の方法であればbatファイルの様にPATHが通っていれば実行できるのも利点のようです