シェルスクリプトの基本設計と変数操作

第1章 シェルスクリプト概要

1.1 シェルの概念

シェルはオペレーティングシステムの最外層で動作するコマンドインタプリタです。ユーザー入力を受け取り、OSが処理可能な形式に変換し、実行結果をユーザーに返します。この対話はインタラクティブまたは非インタラクティブで行われます。

1.2 シェルの役割

シェルはユーザーとLinuxカーネルを仲介する特殊アプリケーションです。主要なシェルインタプリタの種類はシステムによって異なり、/etc/shellsファイルで確認できます。

$ cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/tcsh

bash (/bin/bash) が多くのLinuxディストリビューションのデフォルトシェルです。

1.3 スクリプトの構成要素

シェルスクリプトの基本構成:

  • シバン (例: #!/bin/bash)
  • コメント行 (# で始まる)
  • 実行可能なコマンド群

スクリプト作成手順

  1. コマンドを含むファイル作成
  2. 実行権限付与 (chmod +x)
  3. 構文チェック
  4. 実行

実践例: システム情報取得

#!/bin/bash
# システム情報表示スクリプト
cd /tmp
echo "現在のディレクトリ:"
pwd
echo "拡張子が.logのファイル:"
ls -lh *.log

第2章 入出力制御

2.1 標準入出力デバイス

種類デバイスFD
標準入力/dev/stdin0
標準出力/dev/stdout1
標準エラー/dev/stderr2

2.2 リダイレクト操作

操作演算子機能
入力<ファイルからの入力
出力(上書き)>ファイルへの出力
出力(追加)>>ファイル末尾に追加
エラー出力2>エラーファイル出力

出力リダイレクト例

$ uname -m
x86_64
$ uname -m > arch.txt
$ cat arch.txt
x86_64

入力リダイレクト例

$ echo "password123" > pass.txt
$ passwd --stdin taro < pass.txt

2.3 パイプライン処理

複数コマンドを連携させるパイプ(|)演算子:

$ grep "/bin/bash$" /etc/passwd | awk -F: '{print $1,$7}'
root /bin/bash
user1 /bin/bash

パイプラインは左側のコマンド出力を右側の入力として処理します。

タグ: シェルスクリプト bash リダイレクト パイプライン Linuxシステム管理

5月22日 13:18 投稿