3.5 KiB
Frequently Asked Questions
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 bash3boilerplate into my own project?
- What is a magic variable?
- How do I incorporate bash3boilerplate into my own project?
- How can I contribute to this project?
What is a cli?
A 'cli' is a command-line interface.
How do I incorporate bash3boilerplate into my own project?
You can incorporate bash3boilerplate into your project one of three ways:
- Copy the desired portions of main.sh into your own script.
- 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 source main.sh
- ... (add additional use cases here and descriptions of how to use other files in bash3boilerplate)
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 evalute the correspondign 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/.