sprintf
1 #!/bin/sh
2 case "$BASH_VERSION" in
3 3.1*|4.*)
4 sprintf() # $var_to_set $format [$arguments ...]
5 {
6 local __var_to_set="$1" __tmp
7 shift 1 # var_to_set
8 printf -v __tmp "$@"
9 eval $__var_to_set=\"\${__tmp%\$NL}\"
10 }
11 ;;
12 *)
13 # NB: On FreeBSD, sh(1) runs this faster than bash(1) runs the above
14 sprintf() # $var_to_set $format [$arguments ...]
15 {
16 local __var_to_set="$1"
17 shift 1 # var_to_set
18 eval $__var_to_set=\$\( printf -- \"\$@\" \)
19 }
20 esac
21 sprintf "$@"
22 eval echo \"$1=[\$$1]\"Last updated