Shaw was sitting with a friend at the restaurant early Sunday morning when police said a gunman wearing nothing but a green jacket opened fire outside.
He bolted from his seat and slid along the ground to the restroom, but he kept an eye and an ear out for the gunman. When the shooter paused, Shaw decided to ambush him.
"I figured if I was going to die, he was going to have to work for it," Shaw told reporters Sunday.
He charged at the man with the rifle and they tussled for what felt like a minute, maybe two, Shaw said. His adrenaline was pumping as the gunman cursed and fought him, he said.
The barrel of the rifle was still hot when Shaw managed to wrestle it from the gunman, he said. He tossed it behind the counter and the gunman fled. Police later arrested the suspect, Travis Reinking, after a massive manhunt.
On Monday, Shaw visited two of the survivors in the hospital.
He said he is grateful he survived to see his 4-year-old daughter again. He wants her to grow up in a world with less tragedy.
"I hope we can bring violence in all facets -- not just gun violence, but all facets of violence -- to an end," he said.
Information from CNN contributed to this story.
Copyright 2018 Meredith Corporation. All rights reserved.