Add 1990/theorem/try.sh
This script shows not just theorem but the sorter and the Fibonacci generator as well. For the sorter it reverses output of ls (redirected to a file) and then shows how using sorter on it results in the same output of ls (with no options specified). Of course if different ls sorts output differently this could fail but I did not think of that until after I wrote it.
This commit is contained in:
1 parent
fd57e523bf
commit
2bdf97ec41
4 files changed
+86
-12
No files matched your search
Executable
+76
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# try.sh - demonstrate IOCCC winner 1990/theorem
|
||||
#
|
||||
|
||||
# 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
|
||||
|
||||
make CC="$CC" all >/dev/null || exit 1
|
||||
|
||||
# clear screen after compilation so that only the entry is shown
|
||||
clear
|
||||
|
||||
|
||||
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ./theorem y 0 1 0.1 1: "
|
||||
echo 1>&2
|
||||
./theorem y 0 1 0.1 1
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ./theorem x 1 2 0.1 2: "
|
||||
echo 1>&2
|
||||
./theorem x 1 2 0.1 2
|
||||
echo 1>&2
|
||||
|
||||
echo "$ ./theorem -r 0 0 0 0 < theorem.c > sorter.c" 1>&2
|
||||
./theorem -r 0 0 0 0 < theorem.c > sorter.c
|
||||
echo "$ make sorter" 1>&2
|
||||
make sorter
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ls | ./sorter > ls.sorted.txt: "
|
||||
echo 1>&2
|
||||
# SC2012 (info): Use find instead of ls to better handle non-alphanumeric filenames.
|
||||
# shellcheck disable=SC2012
|
||||
ls | ./sorter > ls.sorted.txt
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ls -r > ls.txt: "
|
||||
echo 1>&2
|
||||
ls -r > ls.txt
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ./sorter < ls.txt: "
|
||||
echo 1>&2
|
||||
./sorter < ls.txt
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "./sorter < ls.txt > ls.sorted.2.txt: "
|
||||
echo 1>&2
|
||||
./sorter < ls.txt > ls.sorted.2.txt
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to show diff between ls.sorted.2.txt and ls.sorted.txt: "
|
||||
echo 1>&2
|
||||
diff -s ls.sorted.2.txt ls.sorted.txt
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ./sorter 0 0 0 0 < theorem.c > fibonacci.c: "
|
||||
./sorter 0 0 0 0 < theorem.c > fibonacci.c
|
||||
echo "$ make fibonacci" 1>&2
|
||||
make fibonacci
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ./fibonacci 1 7: "
|
||||
echo 1>&2
|
||||
./fibonacci 1 7
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ./fibonacci 2 5: "
|
||||
echo 1>&2
|
||||
./fibonacci 2 5
|
||||
echo 1>&2
|
||||
Reference in new issue
Block a user