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