2017-12-09 What does a curley brace mean in a shell script? [0] The answer is: It depends. It might be the delimiter of the com- pound construct in the shell or it might be the delimiter of a block in awk code within the shell script. The former must not be quoted, whereas the latter must be quoted (to prevent the shell to interpret it before awk even sees it). One of the big steps in understanding Unix shell is realizing that it's all about text processing. Quoting is the concept to prevent interpretation of some text at the current level. On each reading of text, one level of quoting is removed. The awk script needs to be protected from interpretation by the shell, thus usually single quotes around it (but one could use double quotes or backslashes as well, they just might be less handy). Some printf string within the awk code is a second time quoted, to prevent awk to interpret its contents, and so forth. It's all about text reading, interpretation and quote removal. Shell commands are nothing but words of text. Arguments to shell commands are nothing but words of text. An awk program given on the command line is nothing but one (!) word of text (from the POV of the shell). Writing troff macro code will teach you quoting lessons the hard way! Tcl provides an uncommon view angle on the shell command and ar- guments concept, within the area of a ``real'' programming language. For the most part these concepts are simple, they just require to not assume but follow the clear rules. This is what humans find to be difficult, however. [0] https://debianforum.de/forum/viewtopic.php?f=34&t=167742&start=15#p1155727 http://marmaro.de/lue/ markus schnalke