シェルスクリプトの基礎
シェルスクリプトの基礎
Section titled “シェルスクリプトの基礎”シェルスクリプトは、複数のコマンドを自動化するためのスクリプトです。効率的な作業自動化が可能です。
シェルスクリプトの基本
Section titled “シェルスクリプトの基本”基本的なスクリプト
Section titled “基本的なスクリプト”#!/bin/bash# シェバン(使用するシェルを指定)
# 変数の定義name="Alice"age=25
# 変数の使用echo "Name: $name"echo "Age: $age"
# コマンドの実行結果を変数に格納current_date=$(date)echo "Current date: $current_date"変数の使い方
Section titled “変数の使い方”#!/bin/bash
# 変数の定義name="Alice"
# 変数の使用echo $nameecho ${name}
# 変数のデフォルト値echo ${name:-"Default"}
# 変数が未定義の場合にエラーecho ${name:?"Variable is not set"}#!/bin/bash
# 引数の取得echo "First argument: $1"echo "Second argument: $2"echo "All arguments: $@"echo "Number of arguments: $#"
# スクリプト名echo "Script name: $0"#!/bin/bash
# if文if [ "$1" == "start" ]; then echo "Starting..."elif [ "$1" == "stop" ]; then echo "Stopping..."else echo "Usage: $0 {start|stop}"fi
# 数値比較if [ $age -gt 18 ]; then echo "Adult"fi
# ファイルの存在確認if [ -f "file.txt" ]; then echo "File exists"fi#!/bin/bash
# forループfor i in 1 2 3 4 5; do echo $idone
# 範囲指定for i in {1..10}; do echo $idone
# ファイルのリストfor file in *.txt; do echo "Processing $file"done
# whileループcount=0while [ $count -lt 5 ]; do echo $count count=$((count + 1))done#!/bin/bash
# 関数の定義function greet() { echo "Hello, $1!"}
# 関数の呼び出しgreet "Alice"
# 戻り値function add() { local sum=$(( $1 + $2 )) return $sum}
add 5 3echo "Sum: $?"バックアップスクリプト
Section titled “バックアップスクリプト”#!/bin/bash
# バックアップスクリプトBACKUP_DIR="/backup"SOURCE_DIR="/var/www"DATE=$(date +%Y%m%d_%H%M%S)
# バックアップディレクトリの作成mkdir -p $BACKUP_DIR
# バックアップの実行tar -czf $BACKUP_DIR/backup_$DATE.tar.gz $SOURCE_DIR
# 古いバックアップの削除(7日以上前)find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +7 -delete
echo "Backup completed: backup_$DATE.tar.gz"ログ分析スクリプト
Section titled “ログ分析スクリプト”#!/bin/bash
# ログ分析スクリプトLOG_FILE="/var/log/app.log"
# エラーの数をカウントerror_count=$(grep -c "ERROR" $LOG_FILE)echo "Error count: $error_count"
# 最新のエラーを表示echo "Latest errors:"grep "ERROR" $LOG_FILE | tail -10
# IPアドレスの統計echo "Top IP addresses:"awk '{print $1}' $LOG_FILE | sort | uniq -c | sort -rn | head -10シェルスクリプトの基礎のポイント:
- 変数: 定義、使用、デフォルト値
- 引数:
$1,$2,$@,$# - 条件分岐: if文、数値比較、ファイル確認
- ループ: for、while
- 関数: 定義、呼び出し、戻り値
- 実践例: バックアップ、ログ分析
適切にシェルスクリプトを使用することで、作業を自動化できます。