diff options
author | EuAndreh <eu@euandre.org> | 2025-04-18 02:17:12 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2025-04-18 02:48:42 -0300 |
commit | 020c1e77489b772f854bb3288b9c8d2818a6bf9d (patch) | |
tree | 142aec725a52162a446ea7d947cb4347c9d573c9 /src/content/en/tils/2020/11/12/useful-bashvars.adoc | |
parent | Makefile: Remove security.txt.gz (diff) | |
download | euandre.org-020c1e77489b772f854bb3288b9c8d2818a6bf9d.tar.gz euandre.org-020c1e77489b772f854bb3288b9c8d2818a6bf9d.tar.xz |
git mv src/content/* src/content/en/
Diffstat (limited to 'src/content/en/tils/2020/11/12/useful-bashvars.adoc')
-rw-r--r-- | src/content/en/tils/2020/11/12/useful-bashvars.adoc | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/content/en/tils/2020/11/12/useful-bashvars.adoc b/src/content/en/tils/2020/11/12/useful-bashvars.adoc new file mode 100644 index 0000000..fb148fb --- /dev/null +++ b/src/content/en/tils/2020/11/12/useful-bashvars.adoc @@ -0,0 +1,61 @@ += Useful Bash variables +:categories: shell + +:bash: https://www.gnu.org/software/bash/ +:bash-bang-bang: https://www.gnu.org/software/bash/manual/bash.html#Event-Designators +:bash-dollar-underscore: https://www.gnu.org/software/bash/manual/bash.html#Special-Parameters + +{bash}[GNU Bash] has a few two letter variables that may be useful when typing +on the terminal. + +== `!!`: the text of the last command + +The {bash-bang-bang}[`!!` variable] refers to the previous command, and I find +useful when following chains for symlinks: + +[source,sh] +---- +$ which git +/run/current-system/sw/bin/git +$ readlink $(!!) +readlink $(which git) +/nix/store/5bgr1xpm4m0r72h9049jbbhagxdyrnyb-git-2.28.0/bin/git +---- + +It is also useful when you forget to prefix `sudo` to a command that requires +it: + +[source,sh] +---- +$ requires-sudo.sh +requires-sudo.sh: Permission denied +$ sudo !! +sudo ./requires-sudo.sh +# all good +---- + +Bash prints the command expansion before executing it, so it is better for you +to follow along what it is doing. + +== `$_`: most recent parameter + +The {bash-dollar-underscore}[`$_` variable] will give you the most recent +parameter you provided to a previous argument, which can save you typing +sometimes: + +[source,sh] +---- +# instead of... +$ mkdir -p a/b/c/d/ +$ cd a/b/c/d/ + +# ...you can: +$ mkdir -p a/b/c/d/ +$ cd $_ +---- + +== Conclusion + +I wouldn't use those in a script, as it would make the script terser to read, I +find those useful shortcut that are handy when writing at the interactive +terminal. |