#!/bin/sh # A simple user-input asker. Result is output to stdout. # Usage: ask [-1] [prompt [initial query]] if [ "$1" = '-1' ]; then # Get one character of input tput civis >/dev/tty; printf '\033[1m%s\033[0m' "$2" >/dev/tty; stty -icanon -echo >/dev/tty 2>/dev/tty; if [ "$(uname)" = "Darwin" ]; then read -n 1 REPLY /dev/tty; echo $REPLY else dd bs=1 count=1 2>/dev/null /dev/tty 2>/dev/tty tput cvvis >/dev/tty true else # Get a line of input if command -v ask >/dev/null; then ask --history=bb.hist --prompt="$(printf '%s\033[?25h' "$1")" --query="$2" else printf "\033[1m%s\033[0m" "$1" >/dev/tty tput cvvis >/dev/tty if [ "$(uname)" = "Darwin" ]; then read -e REPLY /dev/tty else read -r REPLY /dev/tty fi echo $REPLY fi fi