bash
コマンドオプション
bash -c bash -cは直後の文字列を命令として読み込むためのオプション
bash -c "`curl -fsSL https://raw.githubusercontent.com/takuzoo3868/dotfiles/master/setup.sh `"
shebang(シェバン)
2種類の
シェルスクリプトの一行目に必ず記述する #!
で始まる行をshebangと言う。
bashスクリプトのshebangは、bashを絶対パスで指定する方法と、envを使って指定する方法の二種類がある。
bash を絶対パスを指定する方法
#!/bin/bash
/bin/bashが使用される。
※/bin/bash
が存在しなければスクリプトの起動時にエラーとなる。
env を使ってを指定する方法
#!/usr/bin/env bash
後者は $PATH
上のbashが使われる(通常、bashは一か所にしかないので、後者でも /bin/bashとなる可能性が高い)
後者のメリットは、たとえば $HOME/.opt
配下に最新のbashをインストールするなどした場合、$PATH
にさえ入っていればそっちが使われるというのがあります。
シェルスクリプトのデバッグ
ターミナル上
$ bash -x [シェルスクリプト名]
-xオプションは、シェルスクリプト内で実際に実行されたコマンドを表示するオプション
※変数が使用されている場合は、その変数の値が展開された状態で表示される。
行頭の + の意味
- : シェルスクリプト内で実行されたコマンド ++ : ``内で実行されたコマンド
$ bash -v [シェルスクリプト名]
-vオプションはシェルスクリプト内でこれから実行されるコマンドを表示する。
スクリプト内に記述されているコマンドが出力されるだけのため -xオプションと共に使用されることが多い
null コマンド ( : )
#!/bin/bash
# 文字列の先頭は半角文字にしないと...
: "文字化けします."
: "[DEBUG] デバッグメッセージです."
部分的にデバッグしたい
# デバッグ開始
set -x
var1=`date +%M`
# デバッグ終了
set +x