| #!/bin/sh |
| # Usage: |
| # kernopt [names...] |
| # |
| # Prints exactly one line containing the value for each "name." We read |
| # /proc/cmdline and parse all the key=value pairs, printing the 'value' part |
| # if an entry exists where key=name. If the "=value" part is missing, the |
| # value is 1. If there is no matching key, the value is the empty string. |
| # |
| # We also look in the environment variable KERNEL_EXTRA for additional |
| # options that take precedence over /proc/cmdline. This is mostly to allow |
| # easier testing of scripts that call this one without rebooting over and |
| # over. |
| # |
| |
| for want in "$@"; do |
| # This would be easier with sed, but our rootfs currently doesn't have sed. |
| # So we do this slightly insane loop to split on both lines and words. |
| { |
| echo "$KERNEL_EXTRA" |
| while read line; do |
| echo "$line" |
| done </proc/cmdline |
| } | { |
| while read line; do |
| set -- $line |
| for i in "$@"; do |
| echo "$i" |
| done |
| done |
| } | { |
| while IFS== read key value; do |
| [ "$key" = "$want" ] && echo "${value:=1}" && exit 0 |
| done |
| echo # default value |
| } |
| done |