第3回まで無料

シェルスクリプト入門コース

ターミナルで打てるコマンドと、人に渡せるスクリプトは別物です。shebang と実行権限、クォート、set -euo pipefail、getopts、trap、排他制御、ShellCheck と bats まで。全20レッスンで「自分だけが動かせる手順」を「他人の環境でも壊れないスクリプト」に変えるところまで進みます。

カリキュラム

全20レッスンを5つの章に分けています。第1章から順に進めるのがおすすめですが、 いま困っている範囲だけを拾い読みしてもかまいません。 ※ シェルのコマンドはブラウザ内で実行できません。手元のターミナル(macOS なら Homebrew の bash 5.x)で試してください。

Chapter 1 — スクリプトとして動かす(第1〜3回)

ターミナルで打つのと、ファイルに書いて渡すのはどこが違うのか。shebang と実行権限、クォートと単語分割、そして set -euo pipefail。ここを外すと、あとの17回すべてが不安定になります。

Chapter 2 — 分岐と繰り返しと関数(第4〜6回)

[ と [[ の違い、while read でファイルを1行ずつ読むときの落とし穴、local を付け忘れた変数がどこまで漏れるか。シェル特有の「動いてしまう間違い」を先に見ます。

Chapter 3 — 引数とデータの組み立て(第7〜10回)

スクリプトに外から値を渡す道。getopts でのオプション解析、パラメータ展開で外部コマンドを呼ばずに済ませる書き方、配列と連想配列、ヒアドキュメント。

Chapter 4 — 入出力と、壊れないための備え(第11〜15回)

ファイルディスクリプタを自分で開く、grep・sed・awk を使い分ける、mktemp と trap で後始末する、ログを設計する、二重起動を止める。長く動かすスクリプトに要るのはこの章です。

Chapter 5 — 人に渡せる状態にする(第16〜20回)

ShellCheck と shfmt で機械に読ませ、bats でテストを書き、dash で移植性を確かめ、遅さの原因をサブシェルに見つけ、最後は cron と systemd timer で定期実行に載せます。

全20レッスンを終えたら、書いたスクリプトを預けるサーバーの側へ。Linux システム管理で systemd とログの扱いに進めます。コマンドそのものに不安が残るなら Linux 入門へ。メンバーシップで全コースが解放されます。