Allow inline countdown.
This commit is contained in:
53
countdown.sh
53
countdown.sh
@@ -24,27 +24,46 @@
|
|||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
if [ $# -gt 1 ]
|
INLINE=0
|
||||||
then
|
COUNT=5
|
||||||
echo "Too many arguments"
|
|
||||||
echo "Usage: $0 [COUNT]"
|
|
||||||
exit 1
|
|
||||||
elif [ $# -eq 1 ] && [ "$1" = "-h" ]
|
|
||||||
then
|
|
||||||
echo "Usage: $0 [COUNT]"
|
|
||||||
exit 0
|
|
||||||
elif [ $# -eq 1 ] && [ "$1" -le 0 ]
|
|
||||||
then
|
|
||||||
echo "COUNT must be a positive integer"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
COUNT=${1:-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)
|
for i in $(seq "$COUNT" -1 1)
|
||||||
do
|
do
|
||||||
echo "$i"
|
if [ $INLINE -eq 0 ]
|
||||||
|
then
|
||||||
|
echo "$i"
|
||||||
|
else
|
||||||
|
printf "\r%s" "$i"
|
||||||
|
fi
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
|
|
||||||
echo 0
|
if [ $INLINE -eq 0 ]
|
||||||
|
then
|
||||||
|
echo "0"
|
||||||
|
else
|
||||||
|
printf "\r%s\n" "0"
|
||||||
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user