summaryrefslogtreecommitdiff
path: root/calc
diff options
context:
space:
mode:
Diffstat (limited to 'calc')
-rwxr-xr-xcalc16
1 files changed, 16 insertions, 0 deletions
diff --git a/calc b/calc
new file mode 100755
index 0000000..d307962
--- /dev/null
+++ b/calc
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+# Simple calculator
+result=""
+result="$(printf "scale=10;$*\n" | bc --mathlib | tr -d '\\\n')"
+# └─ default (when `--mathlib` is used) is 20
+#
+if [[ "$result" == *.* ]]; then
+ # improve the output for decimal numbers
+ printf "$result" |
+ sed -e 's/^\./0./' `# add "0" for cases like ".5"` \
+ -e 's/^-\./-0./' `# add "0" for cases like "-.5"`\
+ -e 's/0*$//;s/\.$//' # remove trailing zeros
+else
+ printf "$result"
+fi
+printf "\n"