#! /bin/zsh # # this file: # https://dataswamp.org/~incal/conf/.zsh/parse parse-this () { local a local b zparseopts a=a b:=b (( $#a )) && a=1 || a=0 (( $#b )) && b=$b[2] echo "a is $a" echo "b is $b" } find-arg () { local name=$1 shift local args=($@) local i=${args[(Ie)$name]} (( $i )) && echo 1 || echo 0 } parse-test () { local args=($@) local a=$(find-arg "-a" $args) echo "a is $a" }