i didnt care about how i wrote my bash scripts, coz i know theyd ultimately be used just by myself. but for the past few day, i’ve been working on this project, mk-blog which uses some bash scripts, there are chances that others might look at them. besides in work they’re asking me maintain a server. so why not learn the standards. but i couldn’t find anything good online (i’m gonna blame my search engine lol). so…

i’d appreciate redirections to (official or community) bash coding standards

64 points
*

ShellCheck is a static analysis tool for bash/sh scripts - try it on your scripts. The README also shows some examples of what (not) to do.

The link to your project gives me a 404 btw, is it a private repository?

permalink
report
reply
11 points

I can’t recommend shellcheck enough, there are even plugins (for vscode and intellij at least) which give you syntax highlighting in your IDE

permalink
report
parent
reply
15 points

You don’t need a plugin, just use the bash LSP server with any editor that support LSP servers. It supports explainshell, shellcheck and shfmt.

permalink
report
parent
reply
1 point

“Just”, lol. I’m sure yours is a much more comprehensive and powerful solution, but it definitely looks more complex than just installing a plugin on your IDE!

permalink
report
parent
reply
7 points

Thanks. I checked it out. It’d be cool if they have LSP setup.

And thanks for informing about the link, I made a typo :]

permalink
report
parent
reply
7 points

I love ShellCheck! It’s one of the biggest FOSS projects written in Haskell.

permalink
report
parent
reply
-4 points

But it is written in haskell, unpractical language

permalink
report
parent
reply
1 point

Well Why do I love trolling this much…

permalink
report
parent
reply
7 points
3 points

Thanks

permalink
report
parent
reply
7 points

Choose whatever fits you

And stick to it! Also make sure other participants also adhere to that. Optionally configure a linter for doing that.

permalink
report
parent
reply
12 points

There is no single Bash standard to follow, only a few guidelines. One way you can check for some basic errors and formatting would be using an editor with support for Bash (in best case with a builtin LSP). At the end, you have to find your style and coding standards or adapt what others do if you want work with them or edit their files.

  • Otherwise there is a well known tool for checking Bash files: https://www.shellcheck.net/ You can use it online and as a downloaded program on your local machine. After using shellcheck for a bit I got used to some of its conventions and recommendations, such as always wrapping variables like in ${variable} and some other things.
  • Google has a coding style guide, but not everyone likes it: https://google.github.io/styleguide/shellguide.html
  • Related is the Bash Reference Manual from GNU: https://www.gnu.org/software/bash/manual/bash.html Off course this is not a guide on how to style or program, but it helps in understanding how GNU does things.

BTW the mk-blog link is 404 for me.

permalink
report
reply
5 points
*
Deleted by creator
permalink
report
parent
reply
2 points

Thanks.

permalink
report
parent
reply
2 points

I assume you opened the link. Did you read that projnct intro by any chance? Im struggling to name the project. Some suggestion can help.

permalink
report
parent
reply
4 points

Yeah I came across that google’s guide, but I skipped it when I found out its from google. And thanks for informing about the link, I made a typo

permalink
report
parent
reply
7 points

https://github.com/bash-lsp/bash-language-server

  • pretty much all editors support LSP these days
permalink
report
reply
8 points

Yeah, I have bash ls installed, but it wont teach me coding standards right

permalink
report
parent
reply
3 points

Bash LSP server can use shellcheck and shfmt but you have to install those manually.

permalink
report
parent
reply
2 points

It can do that!? Thats awesome

permalink
report
parent
reply
19 points

A yes, the fear of opensourcing.

Trust me, proprietary code is often total garbage because nobody looks at it.

permalink
report
reply

Linux

!linux@lemmy.ml

Create post

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

Community stats

  • 7.4K

    Monthly active users

  • 6.6K

    Posts

  • 179K

    Comments