#!/bin/bash # Desc: Template to check that apps, files, or dirs exist. # Author: Steven Baltaktei Sandoval # License: GPLv3+ #==BEGIN Define script parameters== #===BEGIN Declare local script functions=== timeUntilMidnight(){ # Desc: Report seconds until midnight # Output: stdout: seconds until midnight TIME_CURRENT="$(date --iso-8601=seconds)" ; # Produce `date`-parsable current timestamp with resolution of 1 second. TIME_CURRENT_SHORT="$(date -d "$TIME_CURRENT" +%Y%m%dT%H%M%S%z)" # Produce separator-less current timestamp with resolution 1 second. DATE_CURRENT="$(date -d "$TIME_CURRENT" --iso-8601=date)" ; # Produce `date`-parsable current timestamp with resolution of 1 day. DATE_CURRENT_SHORT="$(date -d "$TIME_CURRENT" +%Y%m%d)" ; # Produce separator-less current timestamp with resolution 1 day. DATE_TOMORROW="$(date -d "$TIME_CURRENT next day" --iso-8601=date)" ; # Produce timestamp of tomorrow's date (res. 1 day). TIME_NEXT_MIDNIGHT="$(date -d "$DATE_TOMORROW" --iso-8601=seconds)" ; # Produce `date`-parsable timestamp of closest future midnight (res. 1 second). SECONDS_UNTIL_NEXT_MIDNIGHT="$(( $(date +%s -d "$TIME_NEXT_MIDNIGHT") - $(date +%s -d "$TIME_CURRENT") ))" ; # Calculate seconds until closest future midnight (res. 1 second). echo "$SECONDS_UNTIL_NEXT_MIDNIGHT" 2>/dev/null; } # Report seconds until next midnight #===END Declare local script functions=== #==END Define script parameters== #==BEGIN sample code== echo "Time until next midnight (seconds):$(timeUntilMidnight)" #==END sample code==