#!/bin/sh -x set -- gopass ls --flat | emenu | xargs --no-run-if-empty gopass show | { while IFS=': ' read -r k v; do case "$v" in '') set -- "$@" password "$k" ;; *) set -- "$@" "$k" "$v" ;; esac; done get_prop="$(printf '%s\n' "$( until [ $# = 0 ]; do echo $1; shift 2; done )" | emenu)" until [ $# = 0 ]; do case "$1" in "$get_prop") echo "$2"; break ;; esac; shift 2; done }