57
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
this post was submitted on 14 May 2025
57 points (100.0% liked)
Linux
55918 readers
428 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 6 years ago
MODERATORS
Serious question, why use a semicolon to put do and then on the end of the previous line?
Especially when do/done are the open and close control directives for a block.
Don't you think bash looks much cleaner when you use it how it was designed?
It's just a brace on same line/new line stylistic choice with extra steps.
About that, I used to also think that brace on new line is clearer, but after seeing a lot more code I have switched sides, both are clear enough to me, so I'd rather have fewer lines
Yes totally a personalstyle choice. To me, using a semicolon to save a line looks more ugly ; then ;)
Bash doesn't ever look clean.
In defense of OP, I do this a lot and go for similar moves in other languages too if the conditional bit is just a line or two. Pro choice!
I'd write
for the same reason I'd write
or in another language
Because it's all part of the same statement and having a single line with just
do
or{
seems silly and implies (to me) that the lines aren't related.Agreed.
I also use this VSCode extension which formats my bash code using
shfmt
https://open-vsx.org/extension/foxundermoon/shell-format
It just looks weird to me to stick a semicolon into the middle of a line when a compound command isn't actually needed.
So you'd rather it all be on one line? I'd only do that if it's a very simple command, otherwise you're just making the code harder to read.
No the opposite. I think more shorter lines makes it easier to read than fewer longer lines.
isn't exactly harder to read than
though, is it? And going back to my original point, I don't like
while true
being on its own as to me it looks like it's meant to be a separate statement rather than part of thedo/done
block.Its a personal style choice.
With a blank line before the 'while' and another after the 'done' its a nice little easy to identify block. I don't know how the 'while' would look like its not a part of that block.
A midline semicolon just looks ugly to me so I don't do it unless it is the only way to make a statement work.
Not OP but this is how I learned it and how it's presented in the help file.
Thats the concise help text to keep it short and easy to read.
The first line in the GNU Bash manual section on loop constructs says "Note that wherever a ‘;’ appears in the description of a command’s syntax, it may be replaced with one or more newlines."