getopts on newer shells