Structured Output
CSV Row
Join Simple Columns
CSV-style rows are useful when values are simple and commas are controlled. A header makes the column order explicit.
Program
Play the script to choose a count and see the generated CSV row.
csv_row.sh
Replay: real traced execution (multi-file project)
#!/usr/bin/env bash
count=3
name="worker"
header="name,count"
row="$name,$count"
echo "$header"
echo "$row"
#!/usr/bin/env bash
count=5
name="worker"
header="name,count"
row="$name,$count"
echo "$header"
echo "$row"
count ← 3
3count=34name="worker"values this step3countname ← worker
3count=34name="worker"5header="name,count"values this stepworkernameheader ← name,count
4name="worker"5header="name,count"6row="$name,$count"values this stepname,countheaderrow ← worker,3
5header="name,count"6row="$name,$count"7echo "$header"values this stepworker,3rowworkername3countecho "$header"
6row="$name,$count"7echo "$header"8echo "$row"outputname,countvalues this stepname,countheaderecho "$row"
7echo "$header"8echo "$row"outputworker,3values this stepworker,3row
count ← 5
3count=54name="worker"values this step5countname ← worker
3count=54name="worker"5header="name,count"values this stepworkernameheader ← name,count
4name="worker"5header="name,count"6row="$name,$count"values this stepname,countheaderrow ← worker,5
5header="name,count"6row="$name,$count"7echo "$header"values this stepworker,5rowworkername5countecho "$header"
6row="$name,$count"7echo "$header"8echo "$row"outputname,countvalues this stepname,countheaderecho "$row"
7echo "$header"8echo "$row"outputworker,5values this stepworker,5row
CSV
Comma-separated output uses a fixed column order.
header
A header line documents the meaning of each column.
simple values
This pattern is safest when values do not contain commas or newlines.