blob: 3eff460007aeb767023611c89a6868fd5f6b947e (
plain)
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
|
#!/usr/bin/zsh
dec_into_perc() {
dec="$1"
# duplicating code, don't care
if echo "$dec" | grep -qE '^(-?[0-9]+\.[0-9]+|-?[0-9]|\.[0-9]+)$'; then
percent="$(echo "$dec * 100" | bc -l)"
echo "${percent}%"
else
echo "Error: not a decimal number" >&2
exit 1
fi
}
perc_into_dec() {
perc="$1"
# duplicating code, don't care
if echo "$perc" | grep -qE '^(-?[0-9]+\.[0-9]+%|-?[0-9]+%|\.[0-9]+%)$'; then
dec="{$perc%?}"
dec="$(echo "$dec / 100" | bc -l)"
echo "$dec"
else
echo "Error: not a percent" >&2
exit 1
fi
}
echo "$1" | grep -qE '^(-?[0-9]+\.[0-9]+|-?[0-9]|\.[0-9]+|-?[0-9]+\.[0-9]+%|-?[0-9]+%|\.[0-9]+%)$' &&
len=${#1} &&
[[ ${1:len-1:1} == "%" ]] && perc_into_dec "$1" || dec_into_perc "$1"
|