Signals and Job Control Concepts
Job Status Table
Select a Modeled Job
Job-control commands report whether background work is running or stopped. A small table can model the decision without launching jobs.
Program
Play the script to choose a job name and read its modeled status.
job_status_table.sh
Replay: real traced execution (multi-file project)
#!/usr/bin/env bash
selected_job="build"
build_status="running"
deploy_status="stopped"
if [[ "$selected_job" == "build" ]]; then
status="$build_status"
else
status="$deploy_status"
fi
echo "$selected_job:$status"
#!/usr/bin/env bash
selected_job="deploy"
build_status="running"
deploy_status="stopped"
if [[ "$selected_job" == "build" ]]; then
status="$build_status"
else
status="$deploy_status"
fi
echo "$selected_job:$status"
selected_job ← build
3selected_job="build"4build_status="running"values this stepbuildselected_jobbuild_status ← running
3selected_job="build"4build_status="running"5deploy_status="stopped"values this steprunningbuild_statusdeploy_status ← stopped
4build_status="running"5deploy_status="stopped"6if [[ "$selected_job" == "build" ]]; thenvalues this stepstoppeddeploy_statusif [[ "$selected_job" == "build" ]]; then
5deploy_status="stopped"6if [[ "$selected_job" == "build" ]]; then7 status="$build_status"values this stepbuildselected_jobstatus ← running
6if [[ "$selected_job" == "build" ]]; then7 status="$build_status"8elsevalues this steprunningstatusrunningbuild_statusecho "$selected_job:$status"
10fi11echo "$selected_job:$status"outputbuild:runningvalues this stepbuildselected_jobrunningstatus
selected_job ← deploy
3selected_job="deploy"4build_status="running"values this stepdeployselected_jobbuild_status ← running
3selected_job="deploy"4build_status="running"5deploy_status="stopped"values this steprunningbuild_statusdeploy_status ← stopped
4build_status="running"5deploy_status="stopped"6if [[ "$selected_job" == "build" ]]; thenvalues this stepstoppeddeploy_statusif [[ "$selected_job" == "build" ]]; then
5deploy_status="stopped"6if [[ "$selected_job" == "build" ]]; then7 status="$build_status"values this stepdeployselected_jobstatus ← stopped
8else9 status="$deploy_status"10fivalues this stepstoppedstatusstoppeddeploy_statusecho "$selected_job:$status"
10fi11echo "$selected_job:$status"outputdeploy:stoppedvalues this stepdeployselected_jobstoppedstatus
job status
Interactive Bash can show whether jobs are running, stopped, or done.
modeled table
A fixed table avoids depending on real background process timing.
conditional selection
The `if` branch copies the selected job's status into one output variable.