shellmath
etc
shellmath | etc | |
---|---|---|
4 | 3 | |
35 | 1 | |
- | - | |
4.0 | 4.4 | |
8 months ago | 10 months ago | |
Shell | Go | |
GNU General Public License v3.0 or later | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
shellmath
-
Pure Bash Bible
There was a really awful and amazing floating point implementation posted here¹ a couple of years ago, with a few interesting comments too². I remember it in part because I was surprised there wasn't more discussion.
¹ https://github.com/clarity20/shellmath
² https://news.ycombinator.com/item?id=26250743
- Show HN: Shellmath: Floating-point arithmetic directly in bash
etc
-
Starship.rs: minimal, fast prompt for any shell
Since this is now a share your prompt thread, here's mine:
https://github.com/rollcat/etc/tree/master/cmd/prompter
It's quite portable (didn't test on Windows though); ~170 lines of Go; no dependencies outside of stdlib; calls no external commands; supports SSH, git, Docker, nix, and virtualenv; extremely simple to hack on.
-
What is in that .git directory?
It's fairly easy to grab info from .git for your own purposes. For example, the program that generates my PS1 peeks there (without wasting precious cycles on shelling out to the git command) to find the current branch we're on:
https://github.com/rollcat/etc/blob/b2fd739/cmd/prompter/mai...
-
Pure Bash Bible
Depends on what you're trying to do. If you're shelling out to git(1) or docker(1), rather than e.g. recursively checking for the presence of .git in parent directories, or inspecting ~/.docker/config.json, then the fork+exec overhead is already quite significant. Next if you're parsing ~/.docker/config.json in shell, you're most likely either asking for trouble or (again) shelling out to jq. Writing it all in an interpreted language means you're paying the cost of interpreter startup, which on underpowered systems can take hundreds of milliseconds even when idle. OTOH loading a static binary to memory happens only once, and with Go you can trivially cross-compile.
I also have a fallback shell one-liner, without any of the fanciness like displaying the current git branch:
https://github.com/rollcat/etc/tree/master/cmd/prompter#i-li...
What are some alternatives?
testing-in-bash - Bash test framework comparison
shunit2 - shUnit2 is a xUnit based unit test framework for Bourne based shell scripts.
calc.plugin.zsh - zsh calculator - with support for basic math
bish - Bish is a language that compiles to Bash. It's designed to give shell scripting a more comfortable and modern feel.
meowatch - watch fs changes and meow
babashka - Native, fast starting Clojure interpreter for scripting
zfsbootmenu - ZFS Bootloader for root-on-ZFS systems with support for snapshots and native full disk encryption
pure-bash-bible - 📖 A collection of pure bash alternatives to external processes.
ShellCheck - ShellCheck, a static analysis tool for shell scripts
pfetch - 🐧 A pretty system information tool written in POSIX sh.
sh - A shell parser, formatter, and interpreter with bash support; includes shfmt