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:
1 parent
1c81a68aa9
commit
71299bf8a7
2 files changed
+45
-9
No files matched your search
@@ -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:
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user