[Linux][command] シェルスクリプト_テスト_test

# testコマンド

```terminal
$ test 条件式
または
$ [ 条件式 ]
```

## パス

| 条件式              | 由来         | 説明                             | 
| :--------------- | :--------- | :----------------------------- |
| `-e FILE`        | exists     | - ファイルが存在すれば真                 |  
|                  |            | 例: `[ -e /etc/passwd ]`        |  
| `-f FILE`        | file       | - 通常ファイルであれば真                  |   
|                  |            | 例: `[ -f myfile.txt ]`         |   
| `-d FILE`        | directory  | - ディレクトリであれば真                  |  
|                  |            | 例: `[ -d /tmp/logs ]`          |  
| `-r FILE`        | readable   | - 読み取り可能であれば真                  |   
| `-w FILE`        | writable   | - 書き込み可能であれば真                  |  
| `-x FILE`        | executable | - 実行可能であれば真                    | 

## ファイル
| 条件式               | 由来         | 説明                               |
| :---------------- | :--------- | :------------------------------- |
| `FILE1 -nt FILE2` | newer than | - `FILE1` が `FILE2` より新しければ真     |
|                   |            | 例: `[ file1.txt -nt file2.txt ]` |
| `FILE1 -ot FILE2` | older than | - `FILE1` が `FILE2` より古ければ真      |
|                   |            | 例: `[ file1.txt -ot file2.txt ]` |


## 文字列
| 条件式                  | 由来          | 説明                    |
| :------------------- | :---------- | :-------------------- |
| `-z STRING`          | zero length | - 文字列が空（長さ0）なら真       |
|                      |             | 例: `[ -z "$input" ]`  |
| `-n STRING`          | non-zero    | - 文字列が空でなければ真         |
|                      |             | 例: `[ -n "$input" ]`  |
| `STRING1 = STRING2`  | equal       | - 2つの文字列が一致すれば真       |
|                      |             | 例: `[ "$a" = "$b" ]`  |
| `STRING1 != STRING2` | not equal   | - 2つの文字列が一致しなければ真     |
|                      |             | 例: `[ "$a" != "$b" ]` |

## 数値
| 条件式             | 由来            | 説明                      |
| :-------------- | :------------ | :---------------------- |
| `INT1 -eq INT2` | equal         | - 2つの整数が等しい場合に真         |
|                 |               | 例: `[ "$a" -eq 100 ]`   |
| `INT1 -ne INT2` | not equal     | - 2つの整数が異なる場合に真         |
|                 |               | 例: `[ "$a" -ne 0 ]`     |
| `INT1 -gt INT2` | greater than  | - INT1 が INT2 より大きい場合に真 |
|                 |               | 例: `[ "$a" -gt 50 ]`    |
| `INT1 -lt INT2` | less than     | - INT1 が INT2 より小さい場合に真 |
|                 |               | 例: `[ "$a" -lt 10 ]`    |
| `INT1 -ge INT2` | greater equal | - INT1 が INT2 以上の場合に真   |
|                 |               | 例: `[ "$a" -ge 1 ]`     |
| `INT1 -le INT2` | less equal    | - INT1 が INT2 以下の場合に真   |
|                 |               | 例: `[ "$a" -le 100 ]`   |


## 論理式

| 条件式              | 由来         | 説明                             | 
| :--------------- | :--------- | :----------------------------- |
| `! EXPR`         | not        | - EXPR が偽であれば真 <br>- EXPR が真であれば偽   |  
|                  |            | 例: `[ ! -d /tmp ]`             |   
| `EXPR1 -a EXPR2` | and        | - 両方の条件が真なら真（非推奨、`&&` を使うのが推奨） | 
| `EXPR1 -o EXPR2` | or         | - どちらかが真なら真（非推奨、`\|\|` を使うのが推奨） |




# Ping-t
- [4570_test パス](https://mondai.ping-t.com/question_subjects/32/question_sessions/33449680/progressing_questions/512330535?result=true)
- [4811_test パス](https://mondai.ping-t.com/question_subjects/32/question_sessions/33449680/progressing_questions/512330524?result=true)
- [4813_test 数値](https://mondai.ping-t.com/question_subjects/32/question_sessions/33449680/progressing_questions/512330521?result=true)
- [4862_test !](https://mondai.ping-t.com/question_subjects/32/question_sessions/33449680/progressing_questions/512330523?result=true)
- [4863_test 文字列　論理式　数値](https://mondai.ping-t.com/question_subjects/32/question_sessions/33449680/progressing_questions/512330520?result=true)