hitchhikers guide to writing useful and modern bash scripts