diff --git a/README.md b/README.md index d802f80..b13af5f 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ pairing with smart people at Hashrocket. For a steady stream of TILs, [sign up for my newsletter](https://tinyletter.com/jbranchaud). -_1017 TILs and counting..._ +_1018 TILs and counting..._ --- @@ -932,6 +932,7 @@ _1017 TILs and counting..._ - [Check The Current Working Directory](unix/check-the-current-working-directory.md) - [Clear The Screen](unix/clear-the-screen.md) - [Command Line Length Limitations](unix/command-line-length-limitations.md) +- [Compare Two Variables In A Bash Script](unix/compare-two-variables-in-a-bash-script.md) - [Configure cd To Behave Like pushd In Zsh](unix/configure-cd-to-behave-like-pushd-in-zsh.md) - [Copying File Contents To System Paste Buffer](unix/copying-file-contents-to-system-paste-buffer.md) - [Copying Nested Directories With Ditto](unix/copying-nested-directories-with-ditto.md) diff --git a/unix/compare-two-variables-in-a-bash-script.md b/unix/compare-two-variables-in-a-bash-script.md new file mode 100644 index 0000000..f6b9410 --- /dev/null +++ b/unix/compare-two-variables-in-a-bash-script.md @@ -0,0 +1,26 @@ +# Compare Two Variables In A Bash Script + +You can compare two variables in a bash script with an `if` block like so: + +```bash +if [ "$EDITOR" = "$PREFERRED_EDITOR" ]; then + # do something ... +fi +``` + +If those variables are equal, then the contents of the `if` block will be +executed. + +Notice that both variables are wrapped in quotes. This is to avoid a potential +syntax error. If the quotes were excluded and one of the variables happened to +be unset, then the comparison would evaluate to: + +```bash +if [ "vim" = ]; then + # do something ... +fi +``` + +That would cause an error, rather than evaluating to false and moving in. +Wrapping each in quotes allows an unset variable to turn into an empty string +(`""`).