The Hidden Complexities of Running Shell Commands in Ruby