Skip to content

Instantly share code, notes, and snippets.

@9oelM
Last active January 7, 2022 11:05
Show Gist options
  • Select an option

  • Save 9oelM/ce9eab16caba1a19472be94464dbfdf7 to your computer and use it in GitHub Desktop.

Select an option

Save 9oelM/ce9eab16caba1a19472be94464dbfdf7 to your computer and use it in GitHub Desktop.
Get bible verses from bash shell
#!/bin/bash
set -e # exit on first error
TRANSLATION="kjv"
usage="
verses.sh
-b [required] book name
-r [required] range
-t [optional] translation (default: kjv)
examples:
1) verses.sh -b john -r 1:29 -t kjv
2) verses.sh -b matthew -r 1:1-20 -t kjv
"
while getopts b:r:t:h: flag; do
case "${flag}" in
t)
TRANSLATION=${OPTARG}
;;
r)
RANGE=${OPTARG}
;;
b)
BOOK=${OPTARG}
;;
h)
printf "${usage}"
exit
;;
*)
printf "${usage}"
exit
;;
esac
done
if [ -z "${BOOK}" ] || [ -z "${RANGE}" ]; then
echo "[!] -b and -r options are required. Check again."
printf "${usage}"
exit 1
fi
bible_api_result=$(curl --connect-timeout 10 --max-time 10 -s "https://bible-api.com/${BOOK}+${RANGE}")
chapter_numbers=$(echo "${bible_api_result}" | jq -r '.verses[].chapter')
verse_numbers=$(echo "${bible_api_result}"| jq -r '.verses[].verse')
verse_texts=$(echo "${bible_api_result}"| jq -r '.verses[].text')
chapter_and_verses=$(paste -d ":" <(echo "${chapter_numbers}") <(echo "${verse_numbers}"))
paste -d " " <(echo "${chapter_and_verses}") <(echo "${verse_texts}" | awk NF)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment