Date: Tue, 18 Jan 2022 12:44:46 +0100 From: l.bash...@scarydevilmonastery.net Message-ID: <1642506286.659529.80113.nullmai...@latitude.scarydevilmonastery.net>
| a: defining an empty function will throw a syntax error | b: defining an empty bodies flow control construct will thow a syntax error | | While it may be debatable whether such construct could serve any purpose | (they actually can), perceived lack of purpose doesn't qualify them as | syntactically wrong. They aren't. They are, and always have been. The sh syntax doesn't permit completely empty statements, and never has. | Would they be syntactically wrong, | the syntax error would continue to exist after adding a harmless | "no operation" equivalent. That makes no sense at all. If the question were semantics, that might be a more reasonable thing to say, but it isn't. The syntax requires words to exist, ':' is a word (it is even a command, which is more than is required). If you want the more elementary case, even less than this, try E= fn() { $E; } (though that one is dangerous, as it is the value of E at the time the function is called which controls what happens, other than the question of the syntax, not its value at definition time. if true then $E; fi while $E; do $E; done (the latter is an infinite loop, doing nothing, executing nothing, just the shell using all the available CPU). kre