Configuration Files
Configuration Defaults
Script Values First
Scripts often start with defaults, then let configuration data override only the values that should change.
Program
Play the script to set a selectable default timeout and build the effective value.
config_defaults.sh
#!/usr/bin/env bash
timeout=
config_timeout=""
effective_timeout=${config_timeout:-$timeout}
echo "timeout=$effective_timeout"
#!/usr/bin/env bash
timeout=
config_timeout=""
effective_timeout=${config_timeout:-$timeout}
echo "timeout=$effective_timeout"
#!/usr/bin/env bash
timeout=
config_timeout=""
effective_timeout=${config_timeout:-$timeout}
echo "timeout=$effective_timeout"
default
A script default gives the program a value even when config is absent.
:-
`${name:-fallback}` expands to the fallback when `name` is empty or unset.
effective value
The effective value is the one later commands should use.