this post was submitted on 26 Aug 2023
101 points (98.1% liked)

linuxmemes

22172 readers
1023 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack users for any reason. This includes using blanket terms, like "every user of thing".
  • Don't get baited into back-and-forth insults. We are not animals.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn. Even if you watch it on a Linux machine.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, <loves/tolerates/hates> systemd, and wants to interject for a moment. You can stop now.
  • 5. πŸ‡¬πŸ‡§ Language/язык/Sprache
  • This is primarily an English-speaking community. πŸ‡¬πŸ‡§πŸ‡¦πŸ‡ΊπŸ‡ΊπŸ‡Έ
  • Comments written in other languages are allowed.
  • The substance of a post should be comprehensible for people who only speak English.
  • Titles and post bodies written in other languages will be allowed, but only as long as the above rule is observed.
  • Β 

    Please report posts and comments that break these rules!


    Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't remove France.

    founded 2 years ago
    MODERATORS
     
    you are viewing a single comment's thread
    view the rest of the comments
    [–] [email protected] 11 points 1 year ago

    tl;dr - Second option usually.

    I think a huge part of shell programming (besides recognizing when anything more maintainable will do πŸ˜‚πŸ˜‚πŸ˜‚) is trying to allow others who aren't as familiar to maintain what you've written. Shell is full of pitfalls, not the least of which is quoting and guaranteeing how many arguments you pass to commands and functions.

    To me, the whole point of quoting here is to be crystal clear about where command arguments begin and end in spite of variable substitution. For this reason I usually go for the second option. It very clearly describes how I'm trying to avoid a pitfall by wrapping each argument to find in a pair of quotes: in this case, double quotes to allow variable substitution.

    Sometimes it's clearer to use the first approach. For example, if the constant parts of one of those arguments contains a lot of special characters, it may make it clearer to use the first approach with the constant parts wrapped in single quotes.

    But even then there are more clear ways to create a string out of other strings. For example, the slightly slower, and more verbose use of printf and a variable, and then using that variable as an argument...wrapped in double quotes since it could contain special characters.