I appreciate that you are not using Bash in your script, but unless you have some strong reason not to I'd advise using it. Often 'sh' is just a restricted form of Bash!

If you agree then you can change things like:

  line_num=$(printf "${crew_member}" | cut -d',' -f1)
  line_num=$(printf "${crew_member}" | cut -d',' -f2)

into:

  line_num="${crew_member%,*}" # gets first element
  line_num="${crew_member#*,}" # gets second element

This only deals with two-element comma-separated lists so it's not quite as flexible as 'cut'.

The % provides suffix removal and # prefix removal. I covered this in show 1648 (https://hackerpublicradio.org/eps.php?id=1648)