シェルスクリプトの用語集(16語)
シェルスクリプトに関する Linux 用語を、読み・意味・補足つきでまとめました。
test / [てすと
条件が真か偽かを判定するコマンド。[ ... ] とも書ける。
ファイル判定 -f / -d、文字列一致 =、数値比較 -eq -lt -gt など。[ を使うときは前後にスペースが必須で、終わりに ] を置く。
クオートくおーと
文字列を引用符で囲み、空白や特殊文字の解釈を制御すること。
ダブルクオート "..." は中の変数を展開し、シングルクオート '...' は展開せずそのままの文字にする。値は "$var" と囲むのが安全。
コマンド置換こまんどちかん
$(コマンド) でコマンドの実行結果を文字列として埋め込む仕組み。
例: now=$(date)。中のコマンドが先に実行され、その標準出力に置き換わる。古い書き方のバッククオート `...` と同義だが $(...) が推奨。
シェルしぇる
入力したコマンドを解釈してOSに伝える対話プログラム。
bash や zsh が代表的。プロンプト($)に打ったコマンドを実行する。
シェルスクリプトしぇるすくりぷと
複数のコマンドをファイルにまとめ、一括実行できるようにしたもの。
拡張子は慣習的に .sh。先頭にシバンを書き、実行権限を付けて ./script.sh のように動かす。手作業の繰り返しを自動化できる。
シバンしばん
スクリプト1行目の #! で始まる、使うインタプリタを指定する行。
例: #!/bin/bash。OSはこの行を見て、どのプログラムでスクリプトを実行するか判断する。#!/usr/bin/env bash と書くと環境に応じた bash を探す。
パイプぱいぷ
前のコマンドの出力を次のコマンドの入力へ渡す | のこと。
ls | grep txt のように、小さなコマンドをつないで処理を組み立てる。Linux流の道具の組み合わせ方の核となる。
リダイレクトりだいれくと
コマンドの入出力をファイルへ向け替える仕組み。> < >> など。
> は上書き保存、>> は追記、< はファイルを標準入力に。2> で標準エラー出力を分けて保存できる。
ループるーぷ
同じ処理を繰り返す制御構造。for と while が代表的。
for はリストを1つずつ、while は条件が真の間ずっと繰り返す。break で抜け、continue で次の周回へ飛ばす。
位置パラメータいちぱらめーた
スクリプトや関数に渡された引数を表す $1 $2 … $@ $# のこと。
$1 は1番目の引数、$# は引数の個数、$@ は全引数、$0 はスクリプト名。shift で引数を1つずつ前へずらせる。
環境変数かんきょうへんすう
export で子プロセスにも引き継がれるようにした変数。
PATH や HOME が代表例。export NAME=値 で設定すると、そのシェルから起動したコマンドやスクリプトからも参照できる。
関数かんすう
処理のまとまりに名前を付けて再利用できるようにしたもの。
name() { ... } で定義し name で呼ぶ。内部では引数を $1 $2 などで受け取れる。return で終了ステータスを返す。
終了ステータスしゅうりょうすてーたす
コマンド終了時に返す0〜255の整数。0が成功、0以外が失敗。
直前のコマンドの結果は $? で取得できる。if 文はこの値を見て分岐し、0なら then 側を実行する。
標準エラー出力ひょうじゅんえらーしゅつりょく
エラーメッセージが流れる出力先。番号は2で、標準出力(1)とは別。
2> file でエラーだけ保存、2>&1 で標準出力と同じ流れに合流。通常出力とエラーを分けて扱える。
標準出力ひょうじゅんしゅつりょく
コマンドの結果が既定で表示される先(通常は画面)。
リダイレクト(>)やパイプ(|)で別の場所やコマンドへ流せる。
変数へんすう
値に名前を付けて保存する入れ物。name=値 で代入し $name で参照。
= の前後にスペースを入れてはいけない。参照時は $name か ${name}。後者は ${name}_bak のように文字とつなげるとき明確になる。