Skip to content

Instantly share code, notes, and snippets.

@Gabelbombe
Created April 5, 2017 19:48
Show Gist options
  • Save Gabelbombe/ab8baad36996c50a65605677d21dd286 to your computer and use it in GitHub Desktop.
Save Gabelbombe/ab8baad36996c50a65605677d21dd286 to your computer and use it in GitHub Desktop.
#!/bin/bash
aopts() { env - sh -s -- "$@"
} <<OPTCASE 3<<\OPTSCRIPT
acase() case "\$a" in $(fmt='
(%s) f=%s; aset "?$(($f)):";;\n'
for a do case "$a" in (--) break;;
(--*[!_[:alnum:]]*) continue;;
(--*) printf "$fmt" "$a" "${a#--}";;
esac;done;printf "$fmt" '--*' ignored)
(*) aset "" "\$a";;esac
shift "$((SHIFT$$))"; f=ignored; exec <&3
OPTCASE
aset() { alias "$f=$(($f${1:-=$(($f))+}1))"
[ -n "${2+?}" ] && alias "${f}_$(($f))=$2"; }
for a do acase; done; alias
#END
OPTSCRIPT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment