x is - Value & Environment Validation
x is is x-cmd's value validation tool for checking if values or environment states meet specific criteria. Supports batch checking multiple values, ideal for robust Shell scripting.
Prerequisites
- Load x-cmd before use:
. ~/.x-cmd.root/X
Core Usage
- Type Check:
x is int 42 100 -5/x is float 3.14 - Range Check:
x is minmax 1 100 50 75 - Compare:
x is eq "a" "a"/x is within "ok" pending success - IP Check:
x is ip 192.168.1.1 - File Age:
x is newest target src/*.c/x is oldest cache.txt /tmp/*.tmp - Variable Check:
x is unset VAR1 VAR2 - Environment Detection:
x is interactive/x is wsl/x is termux
Subcommands
Type
| Command | Description |
|---------|-------------|
| int | Integer check, batch supported |
| float | Float check (must contain decimal point) |
| positive | Positive integer (≥0) |
| negative | Negative integer (<0) |
| minmax | Range check [MIN,MAX] |
Compare
| Command | Description |
|---------|-------------|
| eq | Multiple values equal |
| within | First value in candidate list |
| in | Colon-separated list member check |
| in- | Dash-separated list |
| in_ | Underscore-separated list |
| in/ | Slash-separated list |
| in\| | Pipe-separated list |
Network
| Command | Description |
|---------|-------------|
| ip | IPv4 address check |
File
| Command | Description |
|---------|-------------|
| newest | File newer than others (glob supported) |
| oldest | File older than others (glob supported) |
Variable
| Command | Description |
|---------|-------------|
| unset | Variable is unset |
Environment
| Command | Description |
|---------|-------------|
| interactive | Interactive session |
| interactive_tty | stdin is interactive TTY |
| interactiveshell | Shell is interactive |
| repl | REPL mode |
| stdout2tty | stdout outputs to TTY |
| wsl | WSL environment |
| cygwin | Cygwin environment |
| msys | MSYS/MinGW environment |
| gitbash | Git Bash environment |
| termux | Termux environment |
| ish | iSH environment |
Suitability
| Command | Description |
|---------|-------------|
| suitable_pkg | Suitable for package installation |
| suitable_advise_env | Suitable for advise feature |
| suitable_advise_repl | Suitable for advise REPL |
Practical Examples
Batch Type Validation
x is int 1 2 3 4 5 && echo "All integers"
x is float 3.14 -2.5 .5 && echo "All floats"
Environment Conditional Branch
x is interactive && echo "Interactive session" || echo "Script mode"
x is wsl && echo "WSL environment" || echo "Not WSL"
x is termux && echo "Termux environment"
File Status Check
x is newest build.tar.gz src/*.c lib/*.h || echo "Rebuild needed"
Variable Cleanup Verification
x is unset TEMP_VAR1 TEMP_VAR2 && echo "Temp variables cleaned"
Script Pre-flight Check
x is suitable_pkg || { echo "Environment not suitable"; exit 1; }
Design Principles
- Batch First: Check multiple values at once, all must pass
- Exit Code Semantics: 0 = success, 1 = failure, perfect for
&&/||chains - Silent: Validation tool outputs nothing, only exit code indicates result
Get Help
x is --help