Skip to content

Instantly share code, notes, and snippets.

@mopcweb
Created May 4, 2020 12:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mopcweb/38f5d09525f8defa5aa807d95efa8307 to your computer and use it in GitHub Desktop.
Save mopcweb/38f5d09525f8defa5aa807d95efa8307 to your computer and use it in GitHub Desktop.
# This will parse all provided named params in such way:
# TL;DR. someFunction --skip 10 --name "SomeName" --dev. -----> skip=10, name="SomeName", dev=true
# One liner, just easy to use in each necessary function
# while [[ $# -gt 0 ]]; do if [[ $1 == *"--"* ]]; then if [[ $2 != *"--"* ]]; then declare "${1/--/}"="${2:-true}"; else declare "${1/--/}"=true; fi; fi; shift; done
while [[ $# -gt 0 ]]; do
if [[ $1 == *"--"* ]]; then
if [[ $2 != *"--"* ]]; then declare "${1/--/}"="${2:-true}";
else declare "${1/--/}"=true;
fi;
fi;
shift;
done
# Example usage:
function parse() {
if [[ -n $skip ]]; then echo skip = $skip; fi
if [[ -n $name ]]; then echo name = $name; fi
if [[ -n $dev ]]; then echo dev = $dev; fi
}
parse --skip 10 --name "SomeName" --dev
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment