Skip to content

Instantly share code, notes, and snippets.

@b10s
Last active November 20, 2019 13:03
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 b10s/26ef27107fc703422a5cb64570a9a0e8 to your computer and use it in GitHub Desktop.
Save b10s/26ef27107fc703422a5cb64570a9a0e8 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
#
# TODO
# This option will make the script exit when there is an error
set -o errexit
# This option will make the script exit when it tries to use an unset variable
set -o nounset
main () {
year=$1
echo $year
let "even_4 = $year % 4"
echo 'foo'
let "even_100=$year%100"
let "even_400=$year%400"
echo 'foo'
if [ $even_4 -eq 0 ]; then
if [ $even_100 -eq 0]; then
if [ $even_400 -eq 0]; then
# even 100 and 400, so ok
echo "even 100 and 400"
return 0
fi
# even 100 but not 400, not leap
echo "even 100 but 400"
return 1
fi
# even 4, so ok
echo "even 4"
return 0
fi
# not even 4, not leap
echo "not even 4"
return 1
}
main "$@"
### exists on the following:
$ bash -x leap.sh 2004
+ set -o errexit
+ set -o nounset
+ main 2004
+ year=2004
+ echo 2004
2004
+ let 'even_4 = 2004 % 4'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment