プログラミングラボ ShellScript
🏠 HOME TOP

シェルスクリプト(ShellScript)

概要/基本/基礎/導入・ダウンロード/応用・発展/最新情報/仕事の現場(Web・アプリ)/TPO/知識・技能・用語/例/そのほかのScript/関連リンク

最新情報

この欄はスクロールして閲覧できます。シェルスクリプトの最新ニュースを掲載しています。

概要

シェルスクリプトは、UNIX系OSのシェル(bash, zsh 等)上で実行されるスクリプト言語です。反復作業の自動化、ビルド・デプロイの整備、ログの解析など、日常の開発運用を強力に支援します。

ポイント: 「手動で3回以上やる作業」はスクリプト化の合図。

基本 / 基礎

最小スクリプト

#!/usr/bin/env bash

echo "Hello Shell!"
  • #!/usr/bin/env bash は実行シェルを指定。
  • chmod +x hello.sh で実行権限を付与。
  • ./hello.sh で実行。

変数・条件・ループ

#!/usr/bin/env bash

NAME=${1:-world}
if [[ -z "$NAME" ]]; then
  echo "empty"; exit 1
fi

for i in 1 2 3; do
  echo "hi $NAME ($i)"
done
引数未指定なら world にフォールバック。

導入方法 / ダウンロード

  1. 好きなディレクトリに .sh ファイルを作成。
  2. #!/usr/bin/env bash を先頭に記述。
  3. chmod +x your_script.sh で実行権限。
  4. ./your_script.sh で実行。
Homebrew 等で bash を最新化するのもおすすめ。

応用 / 発展

引数・オプション解析

#!/usr/bin/env bash
set -Eeuo pipefail

usage(){ echo "Usage: $0 [-n name] [-v]"; }
NAME="world"; VERBOSE=false
while getopts ":n:v" opt; do
  case "$opt" in
    n) NAME="$OPTARG";;
    v) VERBOSE=true;;
    *) usage; exit 1;;
  esac
done
$VERBOSE && echo "verbose on"
echo "Hello $NAME"

並列処理(xargs)

seq 1 8 | xargs -I{} -P4 bash -c 'echo {} ; sleep 1'

仕事の現場

Web開発

  • Lint/Format の一括実行, 画像最適化, 静的サイトのビルド
  • サーバログ整形、簡易アクセス解析
  • CI/CD のジョブ(テスト→ビルド→デプロイ)の下回り

アプリ開発

  • iOS/Android のビルドスクリプト(fastlane 補助, keystore 操作)
  • ローカルのモック生成、スナップショット撮影

TPO

状況選択肢コメント
一回きり/試行ワンライナー履歴に残す。再現性低め
繰り返し運用スクリプト化引数/ログ/エラーハンドリングを整備
チーム共有Makefile or npm scripts実行統一と依存管理
大規模/複雑Python/Go へ移行テスト・型・速度を確保

知っておくといい

知識

  • set -Eeuo pipefail の意味
  • POSIX シェルと bash 拡張の違い

技能

  • テキスト処理:grep, awk, sed
  • プロセス/ジョブ制御, パイプ/リダイレクト

用語

  • Shebang / 標準入出力 / リダイレクト / Here Document

ログから 500 エラー件数

grep "\s500\s" access.log | wc -l

画像一括リサイズ(ImageMagick)

mogrify -path ./out -resize 1280x1280 -strip -interlace Plane -quality 82 *.jpg

そのほかの Script

  • PowerShell(Windows 管理で強力)
  • Python(より複雑な処理やAPI連携)
  • PHP/Node.js(Web サーバ連携)