#!/bin/bash

while true; do
    /usr/bin/gnome-shell "$@"
    code=$?
    if [ $code -eq 139 ]; then # 139 = Process exited due to SIGSEGV
        echo 'gnome-shell crashed. Restart' >&2
        continue
    fi
    break
done