4.2 KiB
Contents
- What is a cli?
- How do I add a command-line flag?
- How do I access the value of a command-line argument?
- How do I incorporate BASH3 Boilerplate into my own project?
- What is a magic variable?
- How do I incorporate BASH3 Boilerplate into my own project?
- How can I contribute to this project?
Frequently Asked Questions
What is a cli?
A 'cli' is a command-line interface.
How do I incorporate BASH3 Boilerplate into my own project?
You can incorporate BASH3 Boilerplate into your project one of three ways:
- Copy the desired portions of main.sh into your own script.
- Download main.sh and start pressing the delete-key for unwanted things
Once the main.sh
has been tailor-made for your project you could either append your own script in the same file, or source it:
- Copy main.sh into the same directory as your script and then edit and embed it into your script using bash's dot (
.
) include feature, e.g.
#!/usr/bin/env bash
. main.sh
- Source main.sh in your script or at the command line
#!/usr/bin/env bash
. main.sh
How do I add a command-line flag?
- Copy the line the main.sh read block that most resembles the desired behavior and paste the line into the same block.
- Edit the single-character (e.g., -d) and, if present, the multi-character (e.g., --debug) versions of the flag in the copied line.
- Omit the "[arg]" text in the copied line if the desired flag takes no arguments.
- Omit or edit the text after "Default:" to set or not set default values, respectively.
- Omit the "Required." text if the flag is optional.
How do I access the value of a command-line argument?
To evaluate the value of an argument, append the corresponding single-character flag to the text $arg_
. For example, if the [read block]
contains the line
-t --temp [arg] Location of tempfile. Default="/tmp/bar"
then you can evaluate the corresponding argument and assign it to a variable as follows:
__temp_file_name="${arg_t}"
What is a magic variable?
The magic variables in main.sh
are special in that they have a different value, depending on your environment. You can use ${__file}
to get a reference to your current script, ${__dir}
to get a reference to the directory it lives in. This is not to be confused with the location of the calling script that might be sourcing the ${__file}
, which is accessible via ${0}
, and the current directory of the administrator running the script, accessible via $(pwd)
. Other magic variables are for instance ${__os}
which currently is limited to telling you wether you are on OSX
and otherwise defaults to Linux
.
How do I submit an issue report?
Please visit our Issues page.
How can I contribute to this project?
Please fork this repository. Then create a branch containing your suggested changes and submit a pull request based on the master branch of https://github.com/kvz/bash3boilerplate/. We're a welcoming bunch, happy to accept your contributions!
Why are you typing BASH in all caps?
As an acronym, Bash stands for Bourne-again shell, and is usually written with one uppercase. This project's name however is "BASH3 Boilerplate" as a reference to "HTML5 Boilerplate", which was founded to serve a similar purpose, only for crafting webpages. Somewhat inconsistent but true to Unix ancestry, the abbreviation for our project is "b3bp".