メインコンテンツへスキップ
レッスン 1 / 12推定時間: 25

シェルスクリプトとは?最初のスクリプト作成

シェルスクリプトの基本概念を理解し、最初のスクリプトを作成して実行する方法を学びます

このレッスンの学習目標

  • シェルスクリプトの概念と用途を理解する
  • 最初のシェルスクリプトを作成できる
  • スクリプトの実行方法を習得する
  • シバン(shebang)の意味を理解する

シェルスクリプトとは?

シェルスクリプトは、シェルコマンドを記述したテキストファイルです。複数のコマンドを組み合わせて、自動化されたタスクを実行できます。

なぜシェルスクリプトを学ぶのか?

  1. 作業の自動化: 繰り返し行う作業を自動化できる
  2. 効率化: 複雑な処理を簡単に実行できる
  3. 再利用性: 一度作成すれば何度でも使える
  4. 保守性: 処理内容を文書化できる

最初のシェルスクリプト

Hello Worldスクリプトの作成

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

スクリプトの構成要素

#!/bin/bash
# これはコメントです
echo "Hello World"
  1. シバン(Shebang): #!/bin/bash - 使用するシェルを指定
  2. コメント: # で始まる行は実行されない
  3. コマンド: 実行したいシェルコマンド

スクリプトの実行方法

方法1: bashコマンドで実行

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

方法2: 実行権限を付与して実行

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

シバン(Shebang)の重要性

異なるシェルの指定

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

シバンの書き方

#!/bin/bash          # Bashを使用
#!/bin/sh            # POSIXシェルを使用
#!/usr/bin/env bash  # 環境変数PATHからbashを探す(推奨)
#!/usr/bin/python3   # Pythonスクリプトの場合

実践的な例

システム情報を表示するスクリプト

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

ファイルバックアップスクリプト

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

スクリプト作成のベストプラクティス

1. 明確なコメントを書く

#!/bin/bash
# 
# Script: backup_daily.sh
# Purpose: Daily backup of important files
# Author: Your Name
# Date: 2024-01-15
#

# Main backup function
backup_files() {
    # Implementation here
    echo "Backing up files..."
}

2. エラーチェックを含める

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

3. 変数名は分かりやすく

# 良い例
USER_HOME="/home/user"
BACKUP_DIR="/backup"
LOG_FILE="/var/log/myapp.log"

# 悪い例
a="/home/user"
b="/backup"
c="/var/log/myapp.log"

演習問題

演習1: 現在時刻を表示するスクリプト

現在の日時を異なる形式で表示するスクリプトを作成してください。

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

演習2: ディレクトリ作成スクリプト

指定した名前のディレクトリを作成し、その中に3つのファイルを作成するスクリプトを書いてください。

まとめ

このレッスンで学んだこと:

  1. シェルスクリプトの基本概念 - 自動化のための強力なツール
  2. スクリプトの作成方法 - テキストファイルにコマンドを記述
  3. シバンの重要性 - 適切なインタープリタの指定
  4. 実行方法 - bashコマンドまたは実行権限を付与
  5. ベストプラクティス - 読みやすく保守しやすいスクリプトの書き方

次のレッスンでは、変数と環境変数について詳しく学習します。

さらに学習を続けるには

素晴らしい学習ペースです!次のレッスンに進むには、無料会員登録をお願いします。無料会員では各コースundefinedレッスンまで学習できます。

無料で続きを学ぶ

各コースレッスンまで学習可能

学習進捗の自動保存

コース修了証明書の発行