#!/bin/sh # If the user is doing something ambiguous, like selecting a bunch of files, # moving the cursor off of those files, then doing an action, this will ask # what they mean to target, then output either 'cursor' or 'selected'. # Usage: targets "$BB" "$@" cursor="$1" shift if [ $# -gt 0 ]; then for f in "$@"; do if [ "$f" = "$cursor" ]; then intended='Selected files' break fi done else intended='Cursor file' fi [ -z "$intended" ] && intended="$(printf '%s\0' 'Cursor file' 'Selected files' 'Both' | bbpick 'Which do you mean? ')" case "$intended" in Cursor*) echo cursor ;; Selected*) echo selected ;; Both) echo both ;; esac