Structured Output
Key-Value Line
Print Stable Fields
Many automation scripts print name=value lines so another tool can read the result without guessing column positions.
Program
Play the script to choose a status and see the stable key-value output line.
key_value_line.sh
Replay: real traced execution (multi-file project)
#!/usr/bin/env bash
status="ok"
service="api"
line="service=$service status=$status"
echo "$line"
#!/usr/bin/env bash
status="failed"
service="api"
line="service=$service status=$status"
echo "$line"
status ← ok
3status="ok"4service="api"values this stepokstatusservice ← api
3status="ok"4service="api"5line="service=$service status=$status"values this stepapiserviceline ← service=api status=ok
4service="api"5line="service=$service status=$status"6echo "$line"values this stepservice=api status=oklineapiserviceokstatusecho "$line"
5line="service=$service status=$status"6echo "$line"outputservice=api status=okvalues this stepservice=api status=okline
status ← failed
3status="failed"4service="api"values this stepfailedstatusservice ← api
3status="failed"4service="api"5line="service=$service status=$status"values this stepapiserviceline ← service=api status=failed
4service="api"5line="service=$service status=$status"6echo "$line"values this stepservice=api status=failedlineapiservicefailedstatusecho "$line"
5line="service=$service status=$status"6echo "$line"outputservice=api status=failedvalues this stepservice=api status=failedline
key-value
A key-value line names each field explicitly.
stable field
Keeping field names stable helps downstream tools parse output.
single line
One logical record per line is easy to log and grep.