aboutsummaryrefslogtreecommitdiff
path: root/bash/bashrc.d/vared.bash
diff options
context:
space:
mode:
Diffstat (limited to 'bash/bashrc.d/vared.bash')
-rw-r--r--bash/bashrc.d/vared.bash17
1 files changed, 16 insertions, 1 deletions
diff --git a/bash/bashrc.d/vared.bash b/bash/bashrc.d/vared.bash
index a2066b4c..40eeee21 100644
--- a/bash/bashrc.d/vared.bash
+++ b/bash/bashrc.d/vared.bash
@@ -5,6 +5,21 @@ fi
# Edit named variables' values
vared() {
+ local opt prompt
+ local OPTERR OPTIND OPTARG
+ while getopts 'p:' ; do
+ case $opt in
+ p)
+ prompt=$OPTARG
+ ;;
+ \?)
+ printf 'bash: %s: -%s: invalid option\n'
+ "$FUNCNAME" "$opt" >&2
+ return 2
+ ;;
+ esac
+ done
+ shift "$((OPTIND-1))"
if ! (($#)) ; then
printf 'bash: %s: No variable names given\n' \
"$FUNCNAME" >&2
@@ -12,7 +27,7 @@ vared() {
fi
local name
for name in "$@" ; do
- IFS= read -e -i "${!name}" -p "$name"= -r "$name"
+ IFS= read -e -i "${!name}" -p "${prompt:-$name=}" -r -- "$name"
done
}
complete -A variable vared