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.

status
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"
  1. status ← ok

    3status="ok"4service="api"
    values this stepokstatus
  2. service ← api

    3status="ok"4service="api"5line="service=$service status=$status"
    values this stepapiservice
  3. line ← service=api status=ok

    4service="api"5line="service=$service status=$status"6echo "$line"
    values this stepservice=api status=oklineapiserviceokstatus
  4. echo "$line"

    5line="service=$service status=$status"6echo "$line"
    outputservice=api status=ok
    values this stepservice=api status=okline
  1. status ← failed

    3status="failed"4service="api"
    values this stepfailedstatus
  2. service ← api

    3status="failed"4service="api"5line="service=$service status=$status"
    values this stepapiservice
  3. line ← service=api status=failed

    4service="api"5line="service=$service status=$status"6echo "$line"
    values this stepservice=api status=failedlineapiservicefailedstatus
  4. echo "$line"

    5line="service=$service status=$status"6echo "$line"
    outputservice=api status=failed
    values 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.