My research suggests that the Z shell has close ties with two secret societies. These ties are revealed when contrasting the output of GNU Make when using bash vs. zsh. I would like to know how to configure my shell to foil whatever devious plans have been plotted against me.
Illuminati
The object of this partnership seems to be to hide secrets in plain sight. Consider the output of the following simple
Makefile:test: @echo "# header" @echo "line with a hash # in the middle"If I run this in my
zshshell, the first line is hidden from me. This isn't a problem with escaping the hash because (a) only the first line has a problem, (b) redirecting this to a file makes it show up fine, at which pointcating the file to the same terminal shows up fine, and (c) if I copy from the terminal the text is actually there, it just shows up as black.How can I stop whatever
zshis doing to the output that hides secret messages so I can make fully informed decisions based on the output?Freemasonry
The object of this partnership seems to be to release as little information as possible about what's going on behind the scenes. Consider the output of this simple Makefile:
test: for i in $$(seq 1 10); do echo -n "[$$i]"; sleep 1; doneIf I run this is in my
zshshell, the output is buffered somewhere until a newline is reached or the target is completed. Then and only then is anything given back to the terminal. This makes long running jobs that actually show something while they are working but don't include frequent line breaks in the output very hard to follow. By contrast the output I get frombashis much more informative.How can I stop whatever
zshis doing that censors the output until forced to reveal it so that I can see what's going on as it happens?
If any of this is relevant, I'm using GNU Make 4.2.1, Z shell 5.2, and running it inside of Tmux 2.4 in a Termite v12 window. My dotfiles are available for zsh, tmux and Termite.
Also note neither of these issues seem to have anything to do with the shell make runs internally as adding SHELL = bash to the Makefile doesn't change anything.

