【Shell】シェル ~ Shebang ~

■ はじめに

Github Actions や CloudFormation などの
インフラ系のサービスを扱う際に、Bashをよく使用しているが
Shebang (シェバン)のところとかあいまいなことがあるので
これを機にちゃんと調べてみた

目次

【1】Shebang
【2】効能
【3】構文
【4】オプション
 1)-eオプション
 2)-xオプション
 3)-vオプション
 4)-uオプション

【1】Shebang

* Linux等で実行されるシェルスクリプトにおいて
 先頭についている「#!」を指す
* 別名:hash bang / shell bang / sharp bang

cf. Shebang (シェバン/シバン)
 ... 成り立ちや仕組み、全体の状況、〈米俗〉小屋、あばら家

【2】効能

* 実行時どのシェルでスクリプトを実行するかが決まる
# Shebang Explanations
1 #!/bin/sh Bourne shell (標準シェル)
2 #!/bin/sh Bash
3 #!/usr/bin/env python3 Python v3

【3】構文

#!インタプリタのファイルパス

# <シェル内容>

#!/bin/sh

【4】オプション

* set コマンドについては、以下の関連記事を参照

setコマンド
https://dk521123.hatenablog.com/entry/2021/09/14/000000

1)-eオプション

* エラーで即中断する

指定例

#!/bin/bash -e
or
set -e

2)-xオプション

* シェルスクリプト内で実際に実行されたコマンドを表示する

指定例

#!/bin/bash -x
or
set -x

3)-vオプション

* シェルスクリプト内でこれから実行されるコマンドを表示する

指定例

#!/bin/bash -v
or
set -v

4)-uオプション

* 未定義の変数の参照をエラー

指定例

#!/bin/bash -u
or
set -u

参考文献

https://rcmdnk.com/blog/2016/09/20/computer-linux-bash/
https://qiita.com/mohira/items/566ca75d704072bcb26f
http://sechiro.hatenablog.com/entry/20120806/1344267619
https://qiita.com/yn-misaki/items/6fcfab082dd664f10d4e
https://eng-entrance.com/linux-shellscript-do

 関連記事

シェル ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2014/10/23/005406
シェル ~ 環境変数 IFS ~
https://dk521123.hatenablog.com/entry/2024/01/24/234634
ファイルに関する処理あれこれ
https://dk521123.hatenablog.com/entry/2020/09/28/000000
setコマンド
https://dk521123.hatenablog.com/entry/2021/09/14/000000
Linux ~ ユーザに関わるコマンド ~
https://dk521123.hatenablog.com/entry/2016/06/26/233349
シェル ~ インストール済みかどうか調べる ~
https://dk521123.hatenablog.com/entry/2024/03/02/000000
ShellCheck ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2024/03/26/143803