Add 1988/dale/try.sh

This commit is contained in:
Cody Boone Ferguson committed 2024-01-07 09:30:21 -08:00
1 parent d4aa6e037f
commit dd74026de6
3 files changed
+57 -6

No files matched your search

+7 -6
View File
@@ -19,20 +19,21 @@ For more detailed information see [1988 dale in bugs.md](/bugs.md#1988-dale).
### Try:
```sh
./dale hello world
./dale these files are in this directory: *
./try.sh
```
What do the following commands do and why do they do it? Why do they differ in
format from the above command? Finally how can you get the more likely desired
behaviour?
Observe that three of the commands in the script are:
```sh
./dale these files are in this directory: *
./dale $(printf "the following files exist in this directory:\n%s\n" *)
./dale "$(printf "the following files exist in this directory:\n%s\n" *)"
```
As the script asks what do the last two do and why do they do it? Why do they
differ in format from the first command? Finally how can you get the more likely
desired behaviour?
## Judges' remarks:
+48
View File
@@ -0,0 +1,48 @@
#!/usr/bin/env bash
#
# try.sh - demonstrate IOCCC winner 1988/dale
#
# 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: ./dale hello world: "
echo 1>&2
./dale "hello world"
echo 1>&2
read -r -n 1 -p "Press any key to run: ./dale these files are in this directory: *: "
echo 1>&2
# SC2035 (info): Use ./*glob* or -- *glob* so names with dashes won't become options.
# shellcheck disable=SC2035
./dale these files are in this directory: *
echo 1>&2
echo "For the next two commands, ask yourself what they do and why they do it." 1>&2
echo "Why do they differ in the format from the above command? Finally how can you" 1>&2
echo "get the more likely desired behaviour?" 1>&2
echo 1>&2
echo 1>&2
echo "$ ./dale \$(printf "the following files exist in this directory:\\n%s\\n" *)"
read -r -n 1 -p "Press any key to continue: "
echo 1>&2
# SC2046 (warning): Quote this to prevent word splitting.
# shellcheck disable=SC2046
./dale $(printf "the following files exist in this directory:\n%s\n" *)
echo 1>&2
echo "$ ./dale \"\$(printf \"the following files exist in this directory:\\n%s\\n\" *)\""
read -r -n 1 -p "Press any key to continue: "
echo 1>&2
./dale "$(printf "the following files exist in this directory:\n%s\n" *)"
echo 1>&2
+2
View File
@@ -675,6 +675,8 @@ macro in place it's just no longer used.
See the README.md file for details on the original code, provided as an alt
version in case you have an older compiler or wish to try `-traditional-cpp`.
Cody also provided the [try.sh](/1988/dale/try.sh) script.
## <a name="1988_isaak"></a>[1988/isaak](/1988/isaak/isaak.c) ([README.md](/1988/isaak/README.md]))