Wouldn’t it be better to use true for true and false for false?
Wouldn’t it be better to use true for true and false for false?
The only time I can remember seeing yes/no used in a format like this is YAML, and that caused problems[1].
[1]: https://hitchdev.com/strictyaml/why/implicit-typing-removed/
I don't know if I prefer this over treating everything as a string and letting readers/writers decide on their own how to parse things, but it seems like a much more reasonable approach than YAML's.
I'm interested in what you mean when you mention shell scripts; I find it more idiomatic to write:
if [ true ]; then echo test; fi
Over if [ yes ]; then echo test; fi
Because the behavior is more consistent when you try to use it in other constructs: while true; do echo test; done
Versus yes | while read _; do echo test; done
Or maybe while yes | :; do echo test; done
There's also no "no" command. To get that effect, you'd have to confusingly write: yes no
Is there a particular instance of yes/no in shell scripting that you had in mind?Yes!
I see them all the time in various build scripts, especially for Slackware packages / SlackBuild scripts; it's a pretty common convention to use yes/no values for enabling/disabling (respectively) various build options.
OpenBSD's rc.conf(.local) also uses "NO" to indicate that a service/daemon should be disabled entirely; for example, the default httpd_flags=NO in rc.conf entirely disables httpd - unless, of course, you re-enable it later with httpd_flags= in rc.conf.local. "YES" is also sometimes used, e.g. library randomization being enabled by default via library_aslr=YES.
If it sounds stupid when you say it out loud, it _is_ stupid.
(The more locale agnostic ⊤ and ⊥ (https://en.wikipedia.org/wiki/Verum and https://en.wikipedia.org/wiki/Up_tack), IMO are a bit elitist and difficult to type)
I agree that "true" and "false" would be clearer than "yes" and "no", but the fact that "yes" and "no" are English words isn't an issue.