blob: a19ed95801b658a89d3084676fdbf6d0b1de4e68 (
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"
|