#!/bin/bash # Functions # Throw function throw { >&2 echo "$1" exit "$2" } # Throw a value function throw-value { throw "Invalid value for \"$1\": \"$2\"" "$3" } # Variables selection_mode="$1" saving_mode="$2" screenshot_d="/tmp" _command=() # Command building _command+=("maim") case "$selection_mode" in "full") : ;; "area") _command+=("-s") ;; *) throw-value "selection mode" "$selection_mode" 1 ;; esac case "$saving_mode" in "clip") _command+=("|") _command+=("xclip" "-selection" "clipboard" "-t" "image/png") ;; "file") _command+=(">" "${screenshot_d}/$(printf '%s-screenshot-%s.png' "$LOGNAME" "$(date +'%Y_%m_%d_%s')")") ;; *) throw-value "saving mode" "$saving_mode" 2 ;; esac # Debug #echo "${_command[@]}" #exit 0 # Execution "${_command[@]}"