Installing Ruby gems not working with Homebrew

Homebrew is nice. However unlike brew and npm, gem does not make aliases in /usr/local/bin automatically. Solution I went for a very simple approach (as of March 2020): # Based on “`brew –prefix ruby`/bin” export PATH=/usr/local/opt/ruby/bin:$PATH # Based on “`gem environment gemdir`/bin” export PATH=/usr/local/lib/ruby/gems/3.0.0/bin:$PATH Add this to your .bashrc (or .bash_profile, .zshrc, etc.). That’s it! … Read more

Check if a user is in a group in Bash

if id -nG “$USER” | grep -qw “$GROUP”; then echo $USER belongs to $GROUP else echo $USER does not belong to $GROUP fi Explanation: id -nG $USER shows the group names a user belongs to. grep -qw $GROUP checks silently if $GROUP as a whole word is present in the input.

How can I run bash in a docker container?

If you docker run without attaching a tty, and only call bash, then bash finds nothing to do, and it exits. That’s because by default, a container is non-interactive, and a shell that runs in non-interactive mode expects a script to run. Absent that, it will exit. To run a disposable new container, you can … Read more

How to test string and integer equality, and combine with logical && and || operators in bash?

What you’ve written actually almost works (it would work if all the variables were numbers), but it’s not an idiomatic way at all. (…) parentheses indicate a subshell. What’s inside them isn’t an expression like in many other languages. It’s a list of commands (just like outside parentheses). These commands are executed in a separate … Read more