From 0d394a64e1ea076e13e1467a2f4c0bd0f7758996 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Wed, 13 Jun 2018 12:04:46 +1000 Subject: [PATCH] docs: update --- README.md | 79 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 077decc..0d7c2fb 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,30 @@ -# pure `bash` +

pure bash

A [WIP] collection of +pure bash alternatives to external processes.

-A collection of pure `bash` alternatives to external processes. +The goal of this repository is to document known and unknown methods of +doing various tasks using only built-in bash features. Using the snippets +from this guide can help to remove unneeded dependencies from your scripts +and in most cases make them that little bit faster. I came across these +tips and discovered a few while developing +[neofetch](https://github.com/dylanaraps/neofetch), +[pxltrm](https://github.com/dylanaraps/pxltrm) and some other smaller +projects. + +This repository is open to contribution. If you see something that is +incorrectly described, buggy or outright wrong, open an issue or send a +pull request. If you know a handy snippet that is not included in this +list, send a pull request! + + +## Table of Contents * [Getting the terminal size (*in a script*).](#getting-the-terminal-size-in-a-script) +* [Get the current date using `strftime`.](#get-the-current-date-using-strftime) +* [Get the directory name of a file path.](#get-the-directory-name-of-a-file-path) * [Convert a hex color to RGB](#convert-a-hex-color-to-rgb) * [Convert an RGB color to hex.](#convert-an-rgb-color-to-hex) -* [`printf` as a `date` replacement.](#printf-as-a-date-replacement) -* [`dirname`](#dirname) @@ -30,6 +46,32 @@ get_term_size() { ``` +## Get the current date using `strftime`. + +Bash’s `printf` has a built-in method of getting the date which we can use +in place of the `date` command in a lot of cases. + +**NOTE:** Requires `bash` 4+ + +```sh +date() { + # Usage: date "format" + # See: 'man strftime' for format. + printf "%($1)T\\n" +} +``` + +## Get the directory name of a file path. + +Alternative to the `dirname` command. + +```sh +dirname() { + # Usage: dirname "path" + printf ‘%s\n’ "${1%/*}/" +} +``` + ## Convert a hex color to RGB ```sh @@ -43,7 +85,6 @@ hex_to_rgb() { } ``` - ## Convert an RGB color to hex. ```sh @@ -54,31 +95,3 @@ rgb_to_hex() { ``` -## `printf` as a `date` replacement. - -Bash’s `printf` has a built-in method of getting the date which we can use -in place of the `date` command in a lot of cases. - -**NOTE:** Requires bash4+ - -```sh -date() { - # Usage: date "format" - # See: 'man strftime' for format. - printf "%($1)T\\n" -} -``` - - -## `dirname` - -Extract the directory from a file path. - -```sh -dirname() { - # Usage: dirname "path" - printf ‘%s\n’ "${1%/*}/" -} -``` - -