#!/bin/bash # Copyright (C) 2022 Ortega Froysa, Nicolás All rights reserved. # Author: Ortega Froysa, Nicolás # # This software is provided 'as-is', without any express or implied # warranty. In no event will the authors be held liable for any damages # arising from the use of this software. # # Permission is granted to anyone to use this software for any purpose, # including commercial applications, and to alter it and redistribute it # freely, subject to the following restrictions: # # 1. The origin of this software must not be misrepresented; you must not # claim that you wrote the original software. If you use this software # in a product, an acknowledgment in the product documentation would be # appreciated but is not required. # # 2. Altered source versions must be plainly marked as such, and must not be # misrepresented as being the original software. # # 3. This notice may not be removed or altered from any source # distribution. set -euo pipefail INLINE=0 COUNT=5 if [ $# -ge 1 ] && [ $# -le 2 ] then for arg in "$@" do if [ "$arg" = "-i" ] then INLINE=1 elif [ "$arg" = "-h" ] || [ "$arg" = "--help" ] then echo "Usage: $0 [-i] [COUNT]" echo " COUNT: Number of seconds to count down from (default: 5)" echo " -i: Inline mode (do not print each number on a new line)" exit 0 elif [[ "$arg" =~ [0-9]+ ]] then COUNT="$arg" else echo "Unknown argument: $arg" exit 1 fi done fi for i in $(seq "$COUNT" -1 1) do if [ $INLINE -eq 0 ] then echo "$i" else printf "\r%s" "$i" fi sleep 1 done if [ $INLINE -eq 0 ] then echo "0" else printf "\r%s\n" "0" fi