#! /bin/bash _get() { sudo ddcutil getvcp 10 | grep -o ' current value = \+[0-9]\+' | awk '{print $4}' } _set() { sudo ddcutil setvcp 10 "$1" } args="$*" case "$args" in '') _get;; *) if [[ "$args" =~ ^[0-9]+$ && "$args" -gt -1 && "$args" -lt 101 ]]; then _set "$args" else printf 'Error: expected a numeric argument between 0 and 100, but given "%s"\n' "$args" >&2 exit 1 fi esac