Further improve 2000/schneiderwent/try.sh

Now allows one to override how long to sleep and how many iterations to
go through. It is an error if non positive values are specified.
This commit is contained in:
Cody Boone Ferguson committed 2024-02-05 05:06:12 -08:00
1 parent 1c81a68aa9
commit 71299bf8a7
2 files changed
+45 -9

No files matched your search

+9
View File
@@ -28,6 +28,15 @@ paint dry :-) ) you might also try:
./try.sh
```
Alternatively, you can check on it later on, to see all the entry does. Or if
you wish to make it run faster, you can override how long it sleeps per
iterations and how many iterations it runs. For instance to make it sleep only
30 seconds and run only twice:
```sh
SLEEP=30 ITERATIONS=2 ./try.sh
```
## Judges' remarks:
+36 -9
View File
@@ -6,23 +6,50 @@
# make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it
# this way allows us to have the user specify a different compiler in an easy
# way.
if [[ -z "$CC" ]]; then
CC="cc"
fi
[[ -z "$CC" ]] && CC="cc"
make CC="$CC" all >/dev/null || exit 1
# clear screen after compilation so that only the entry is shown
clear
echo "This will take a long time to run to completion: " 1>&2
# get the number of seconds to sleep in between runs (def: 60)
[[ -z "$SLEEP" ]] && SLEEP=60
# verify it's a positive number:
echo "$SLEEP" | grep -qE '^[0-9]+'
if [[ "${PIPESTATUS[1]}" -ne 0 ]]; then
echo "SLEEP value not a positive number, fix and run again."
exit 1
fi
# get the number of iterations to run (default: 60)
[[ -z "$ITERATIONS" ]] && ITERATIONS=60
# verify it's a positive number:
echo "$ITERATIONS" | grep -qE '^[0-9]+'
if [[ "${PIPESTATUS[1]}" -ne 0 ]]; then
echo "ITERATIONS value not a positive number, fix and run again."
exit 1
fi
echo "If you did not override \$SLEEP and \$ITERATIONS this will take a long" 1>&2
echo "time to run to completion: approximately one hour. If you do not care to" 1>&2
echo "wait such a long time, which we presume is probably quite likely, you" 1>&2
echo "you might wish to run this entry like the following: " 1>&2
echo 1>&2
echo " ./schneiderwent" 1>&2
echo " ./schneiderwent schneiderwent.data" 1>&2
echo 1>&2
echo "at various times throughout the day, preferably at different" 1>&2
echo "minutes of the hours." 1>&2
echo 1>&2
echo "Alternatively, you can leave this running in a console tab for an hour" 1>&2
echo "and look back at it later, so that you can see all the entry does." 1>&2
echo 1>&2
read -r -n 1 -p "Press any key to start: "
echo 1>&2
i=0
while [[ "$i" -lt 60 ]]; do
while [[ "$i" -lt "$ITERATIONS" ]]; do
./schneiderwent
./schneiderwent schneiderwent.data
sleep 60
sleep "$SLEEP"
((i++))
done