blob: 491e5bff2b5ca0291e4334c158bbb02ab63a55f3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# Requires Bash >= 4.0 for read -i and ${!name}
((BASH_VERSINFO[0] >= 4)) || return
# Edit named variables' values
vared() {
local opt prompt
local OPTERR OPTIND OPTARG
while getopts 'p:' opt ; do
case $opt in
p)
prompt=$OPTARG
;;
\?)
printf 'bash: %s: -%s: invalid option\n' \
"${FUNCNAME[0]}" "$opt" >&2
return 2
;;
esac
done
shift "$((OPTIND-1))"
if ! (($#)) ; then
printf 'bash: %s: No variable names given\n' \
"${FUNCNAME[0]}" >&2
return 2
fi
local name
for name do
IFS= read -e -i "${!name}" -p "${prompt:-"$name"=}" -r -- "${name?}"
done
}
|