#!/bin/ksh93 # # simple /proc/cmdline parser # compound c typeset -a ar typeset s typeset dummy ar=( $(cat /proc/cmdline) ) compound -A c.values for s in "${ar[@]}" ; do dummy=${s/~(Elr)(.+?)(?:=(.+)|)/} print -v .sh.match case "${#.sh.match[*]}" in '2') c.values[${.sh.match[1]}].name="${.sh.match[1]}" ;; '3') c.values[${.sh.match[1]}].name="${.sh.match[1]}" c.values[${.sh.match[1]}].value="${.sh.match[2]}" ;; *) print -u2 -f $"%s: Parser error\n" "$0" ;; esac done print -v c # EOF.