test テスト

英語表記test

日本語表記条件式評価

別名[

正式名称test

危険度安全

What does it mean?

条件式を評価し、真なら0、偽なら1を返します。シェルスクリプトの分岐やファイル存在確認で使う重要な基本部品です。

Command Quest

test を今日の道具にする

条件式を評価し、真なら0、偽なら1を返します。シェルスクリプ...

$ test 条件式 [ 条件式 ]
関連用語12
次のコマンド0
FAQ1
参照4

概要

条件式を評価し、真なら0、偽なら1を返します。シェルスクリプトの分岐やファイル存在確認で使う重要な基本部品です。

基本構文

test 条件式
[ 条件式 ]

詳細解説

testは、文字列比較、数値比較、ファイル存在確認、権限確認などの条件判定を行うためのコマンドです。出力ではなく終了ステータスで結果を返すため、if、while、&&、||と相性が良く、シェルスクリプトの基礎になります。

多くのシェルでは組み込みとして実装され、[ という書き方も同じ系統の機能です。

このコマンドを使う場面

ifやwhileで条件分岐したい時、ファイルの有無や種類を確認したい時、変数が空かどうかを判定したい時、数値の大小比較をしたい時に使います。

まず安全に試す方法

1. test -d /etc; echo $?
2. test 3 -gt 2; echo $?
3. file="/etc/passwd"; test -f "$file"; echo $?

3分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. test -fとtest -dを使い分けて、ファイルとディレクトリを判定します。

資格試験との関連

  • LinuC レベル1
    範囲: 1.06 シェルスクリプト
    根拠: official
    LinuCレベル1では、シェルスクリプトの作成、条件判定、入力処理が問われます。testはその基礎部品として重要です。
  • LPIC-1
    範囲: 105.2 簡単なスクリプトをカスタマイズする
    根拠: official
    LPIC-1では、単純なシェルスクリプトの分岐と入力処理が出題対象です。testはその基本構成要素です。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    試験横断で、testはコマンドライン操作、手順読解、トラブルシュートの基礎体力を作る項目です。

オプション

  • -f ファイル
    通常ファイルが存在するか判定します。
    test -f /etc/passwd
  • -d ディレクトリ
    ディレクトリが存在するか判定します。
    test -d /etc
  • -gt
    左辺が右辺より大きいか数値比較します。
    test 5 -gt 3

実行結果サンプル

  • test -f /etc/passwd; printf "%sn" $?

戻り値コード

  • 0 条件が真です。
  • 1 条件が偽です。
  • >1 構文誤りなどで評価自体に失敗しました。

使用例

  • test -f /etc/passwd
  • [ -d /var/log ]
  • test "$USER" = root
  • test 10 -gt 3

よくあるエラー

  • 変数が空の時に構文エラーになった
    原因: 引用していないため引数数が崩れています。
    対処: test "$var" = valueのように変数を引用します。

導入・互換性情報

POSIXはtestと[を定義しています。Bashの[[ ... ]]は便利ですが別物です。移植性を求めるスクリプトでは混同しないでください。

  • Debian GNU/Linux / 13 / Bash 5.2.37

注意点 / セキュリティリスク

引用不足や空文字の扱いを誤ると条件判定が壊れます。特に変数が空の時や空白を含む時に不具合が起こりやすいため、変数は原則として引用します。

FAQ

  • Q. [ とtestは同じですか。
    A. ほぼ同系統ですが、[ は最後に ] を必要とします。

関連用語

  • Unix
  • POSIX
  • POSIXシェル
  • wildcard
  • glob
  • quote
  • idempotency
  • configure script
  • script
  • Bash scripting
  • unit test
  • integration test

参照リンク

関連記事