本文へスキップ
BecomeCoder

シェルスクリプトコース · 第1章 はじめてのシェルスクリプト · レッスン1

シェルスクリプトとは ― 手作業を仕組みに変える

ブラウザで完結

導入

バックアップを取って、ログを整理して、結果を表示する」。この3つを毎日手で打つと、いつか順番を間違えます。人がやると間違える作業は、書き留めて機械に任せるのが正解です。シェルスクリプトは、その一番手軽な入口です。

説明

シェルスクリプトとは、シェルに打つコマンドを、そのままの順番でファイルに並べたものです。特別な言語を覚える必要はありません。あなたが端末で打ってきた echolscpgrep が、そのまま部品になります。

flowchart LR
    A["手で1コマンドずつ打つ<br/>(速いが、毎回・間違える)"] --> B["ファイルに並べる<br/>script.sh"]
    B --> C["sh script.sh<br/>(いつでも同じ結果)"]
    C --> D["cron で定期実行<br/>(人がいなくても動く)"]

上のエディタが、いまあなたが書いているスクリプトです。中身はたったこれだけ。

#!/bin/bash

echo "おはようございます"
echo "今日の日付: $(date +%Y-%m-%d)"
echo "作業を開始します"

3行の echo が、上から順に実行されます。スクリプトの実行順は、書いた順。これがすべての土台です。

$(date +%Y-%m-%d) は「date コマンドを実行して、その結果をここに埋め込む」という書き方です(第2章で詳しく扱います)。手で打つときと同じコマンドが、そのまま部品として使えることを感じてください。

なぜファイルにするのか。理由は3つあります。

  • 再現できる: 同じ手順が、何度でも・誰がやっても同じ結果になる。
  • 共有できる: 手順書ではなく「動く手順」をチームに渡せる。
  • 自動化できる: cron(第8章)に登録すれば、人が寝ていても動く。

やってみよう

上のエディタの中身を確かめたら、「▶ 実行」ボタンを押してください(下の端末で sh script.sh と打っても同じです)。3行が上から順に表示されます。次に、4行目として echo "作業を終了します" を書き足して、もう一度実行してみましょう。書き足した行が、最後に増えることを確かめてください。

演習

スクリプトの最後に echo "作業を終了します" を追加して実行し、その行を画面に出してください。

ヒント1を見る

エディタの一番下に、新しい行として echo "作業を終了します" を書き足します。

ヒント2を見る

書いたら「▶ 実行」ボタン(または端末で sh script.sh)。

実際に動かしてみよう

本文のサンプルや演習のコードは、コードブロック右上の「コピー」ボタンでコピーして、下のエディタに貼り付ければそのまま実行できます。

シェルスクリプト(シミュレート)

スクリプトを書くエディタと、それを動かす仮想シェルを読み込みます(本物のbashではなく、動きを再現した学習用の環境です)。
スクロールして表示された時点でも自動で読み込まれます。