Those you might expect on a modern Linux system when bash is there (coreutils will be there 99% of the time as well). Not all distros ship curl by default
I ran a Docker container and copied a statically-linked curl and bash onto a scratch image and ran it, it does not work:
$ docker run -it --rm $(docker build -q .)
/srvmon.sh: line 162: date: command not found
$ cat Dockerfile
FROM scratch
COPY bash /usr/bin/bash
COPY curl /usr/bin/curl
COPY srvmon.sh /srvmon.sh
CMD ["/usr/bin/bash", "/srvmon.sh"]
I'm not pointing this out to be pedantic. I'm pointing it out because there is a common misconception that all these things like "date" and "cat" and "mkdir" are part of Bash, but they're not, they're part of coreutils and there are dramatically different versions of coreutils on different installations of Linux, macOS, BSD, etc., and some environments (like barebones Docker containers) don't have coreutils at all.I care about this because I deal with it all the time. Coreutils programs have pretty different behavior across distributions and OSs, we shouldn’t sweep implicit dependencies under the rug.