From fb117fabcdc06a7898a88d6a5b6cbd7f1e29823e Mon Sep 17 00:00:00 2001 From: ZachIR Date: Wed, 24 Aug 2022 02:17:33 -0500 Subject: add infloop script to loop while other command is true/false --- infloop | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 infloop (limited to 'infloop') diff --git a/infloop b/infloop new file mode 100755 index 0000000..dde7c86 --- /dev/null +++ b/infloop @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +MUSTBETRUE=y +unset MUSTBEFALSE +count=1 +for i in $@; do + count=$(printf "%s + 1\n" "$count" | bc) + [ -n "$BUFFERREAD" ] && BUFFERTIME="$i" && unset BUFFERREAD && continue + case "$i" in + "-t") + MUSTBETRUE=y + unset MUSTBEFALSE + ;; + "-f") + MUSTBEFALSE=y + unset MUSTBETRUE + ;; + "-c") + break 2 + ;; + "-b") + BUFFERREAD="y" + ;; + "-*") + printf "Unsupported argument. Please use -t if exit on true, and -f if exit on false.\n" + exit 1 + esac +done + +if [ $# -ge $count ]; then + COMMAND="${@:$count}" +else + printf "No command given!\n" && exit 1 +fi + +while true; do + if [ "$MUSTBEFALSE" ]; then + $COMMAND || exit 0 + else + $COMMAND && exit 0 + fi + sleep "${BUFFERTIME:-1}" +done -- cgit v1.2.3