Add 1988/dale/try.sh
This commit is contained in:
1 parent
d4aa6e037f
commit
dd74026de6
3 files changed
+57
-6
No files matched your search
+7
-6
@@ -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:
|
||||
|
||||
|
||||
Executable
+48
@@ -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
|
||||
|
||||
@@ -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]))
|
||||
|
||||
|
||||
Reference in new issue
Block a user