Data Validation
Number Validation
Check Digits
Scripts often receive numbers as strings. A validation step should confirm the shape before arithmetic uses the value.
Program
Play the script to choose an input value and see whether the digit check passes.
number_validation.sh
Replay: real traced execution (multi-file project)
#!/usr/bin/env bash
input="42"
if [[ "$input" =~ ^[0-9]+$ ]]; then
status="number"
else
status="invalid"
fi
echo "$input:$status"
#!/usr/bin/env bash
input="4x"
if [[ "$input" =~ ^[0-9]+$ ]]; then
status="number"
else
status="invalid"
fi
echo "$input:$status"
input ← 42
3input="42"4if [[ "$input" =~ ^[0-9]+$ ]]; thenvalues this step42inputif [[ "$input" =~ ^[0-9]+$ ]]; then
3input="42"4if [[ "$input" =~ ^[0-9]+$ ]]; then5 status="number"values this step42inputstatus ← number
4if [[ "$input" =~ ^[0-9]+$ ]]; then5 status="number"6elsevalues this stepnumberstatusecho "$input:$status"
8fi9echo "$input:$status"output42:numbervalues this step42inputnumberstatus
input ← 4x
3input="4x"4if [[ "$input" =~ ^[0-9]+$ ]]; thenvalues this step4xinputif [[ "$input" =~ ^[0-9]+$ ]]; then
3input="4x"4if [[ "$input" =~ ^[0-9]+$ ]]; then5 status="number"values this step4xinputstatus ← invalid
6else7 status="invalid"8fivalues this stepinvalidstatusecho "$input:$status"
8fi9echo "$input:$status"output4x:invalidvalues this step4xinputinvalidstatus
validation
Validation checks input before later logic trusts it.
regex
`^[0-9]+$` accepts only one or more digits.
status word
A compact status makes validation failures easy to test.