Skip to content
/ L_lib Public

Bash library for day to day tasks and scripting

License

Notifications You must be signed in to change notification settings

Kamilcuk/L_lib

Repository files navigation

L_lib.sh

my labrador dog

Labrador Bash library. Collection of functions and libraries that I deem useful for working with Bash.

Installation

Package Managers

Install L_lib using your preferred Bash package manager:

Basher

basher install Kamilcuk/L_lib

bpkg

bpkg install Kamilcuk/L_lib

Shpkg

shpkg install Kamilcuk/L_lib

Manual Installation

The library is one file. Download the latest release from GitHub and put in your PATH:

mkdir -vp ~/.local/bin/
wget -O ~/.local/bin/L_lib.sh https://raw.githubusercontent.com/Kamilcuk/L_lib/refs/heads/v1/bin/L_lib.sh
export PATH=~/.local/bin:$PATH

Pip

pip install L_lib

Basher

basher install Kamilcuk/L_lib

Usage

You can use the library in scripts with:

. L_lib.sh -s

Unless -n, sourcing the library will enable extglob and patsub_replacement and, if set -e is set and there is no ERR trap, it will also register a ERR trap that will print a nice traceback on unhandled error.

For example, a simple script using the library could look like:

#!/bin/bash
. L_lib.sh -s
L_log "Starting script"
L_info "This is an info message"

You can test the library ad-hoc:

bash <(wget -qO- https://raw.githubusercontent.com/Kamilcuk/L_lib/refs/heads/v1/bin/L_lib.sh) L_setx L_log 'Hello world'

Features

Below is a selection of the library's features. The library contains much more.

Talk to me

Kindly feel free to have conversations and ask questions on GitHub discussion.

Report bugs using GitHub issue.

Contributing

Contributions are welcome! You can run the tests locally with make test or check static analysis with make shellcheck. Please submit pull requests to the main repository.

Conventions

  • L_* prefix for public symbols.
  • _L_* prefix for private symbols, including local variables in functions taking a name-reference.
  • Upper case used for global scope read-only variables.
  • Lower case used for functions and user mutable variables.
  • Snake case for everything.
  • The option -v <var> is used to store the result in a variable instead of printing it.
    • This follows the convention of printf -v <var>.
    • Without the -v option, the function outputs the elements on lines to standard output.
    • Associated function with _v suffix store the result in a hardcoded scratch variable L_v.
  • Return 2 on usage error, return 124 on timeout.

License

GPL-3.0

About

Bash library for day to day tasks and scripting

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors 2

  •  
  •  

Languages