|Deletions are marked like this.||Additions are marked like this.|
|Line 47:||Line 47:|
|1. It's always git. Or python virtualenv, or docker, or puppet, or ansible, or mysql. ALWAYS.||1. The fad of the month (as of June 2018) is Docker. It's always Docker. Why are they doing it THAT WAY? Because Docker.|
Why is it so hard to get an answer to the question that I asked in #bash?
Maybe nobody knows the answer (or the people who know the answer are busy). Maybe you haven't given enough detail about the problem, or you haven't presented the problem clearly. Maybe the question you asked is answered in this FAQ, or in BashPitfalls, or in the BashGuide.
This is a big one: don't just post a URL and say "here is my script, fix it!" Only post code as a last resort, if you have a small piece of code that you don't understand. Instead, you should state what you're trying to do.
Shell scripting is largely a collection of hacks and tricks that do not generalize very well. The optimal answer to one problem may be quite different from the optimal answer to a similar-looking problem, so it's extremely important that you tell us the exact problem you want to solve.
Moreover, if you've attempted to solve a problem yourself, there's a really high probability that you've gone about it using a technique that doesn't work (or, at least, doesn't work for that particular problem). Any code you already have is probably going to be thrown away. Posting your non-working code as a substitute for a description of the problem you want to solve is usually a waste of time, and is nearly always irritating.
The aphorisms (bash aphorisms, "bashphorisms") given here are intended to be humorous, but with a touch of realism underlying them. Several have been suggested over time, and this list is evolving.
- The questioner's first description of the problem/question will be misleading.
Corollary 1.1: The questioner's second description of the problem/question will also be misleading.
Corollary 1.2: The questioner's third description of the problem will clarify two previous misdescribed elements of the problem, but will add two new irrelevant issues that will be even more difficult to unravel from the actual problem.
- The questioner will keep changing the original question until it drives the helpers in the channel insane.
- Offtopicness will continue until someone asks a bash question that falls under bashphorisms 1 and/or 2, and greycat gets pissed off.
- The questioner will not read and apply the answers he is given but will instead continue to practice b1 and b2.
- The ignorant will continually mis-educate the other noobies.
- When given a choice of solutions, the newbie will always choose the wrong one.
- The newbie will always find a reason to say, "It doesn't work."
- If you don't know to whom the bashphorism's referring, it's you.
- All examples given by the questioner will be broken, misleading, wrong, and/or not representative of the actual question.
- The data is never formatted in the way that makes it easiest to manipulate.
- If your script uses cut, head or sed to operate on strings, rewrite it.
All logic is deniable; however, some logic will plonk you if you deny it.
- Everyone ignores greycat when he is right. When he is wrong, it is !b1.
- The newbie doesn't actually know what he's asking. If he did, he wouldn't need to ask.
- The more advanced you are, the more likely you are to be overcomplicating it.
- The more of a beginner you are, the more likely you are to be overcomplicating it.
- A newbie comes to #bash to get his script confirmed. He leaves disappointed.
- The newbie will not accept the answer you give, no matter how right it is.
- The newbie is a bloody loon.
- The newbie will always have some excuse for doing it wrong.
If When the newbie's question is ambiguous, the proper interpretation will be whichever one makes the problem the hardest to solve.
- The newcomer will abuse the bot's factoid triggers for their own entertainment until someone gets annoyed enough to ask them to message it privately instead.
- Everyone is a newcomer.
- The newcomer will address greybot as if it were human.
- The newbie won't accept any answer that uses practical or standard tools.
- The newbie will not TELL you about this restriction until you have wasted half an hour.
- The newbie will lie.
- When the full horror of the newbie's true goal is revealed, the newbie will try to restate the goal to trick you into answering. Newbies are stupid.
- The fad of the month (as of June 2018) is Docker. It's always Docker. Why are they doing it THAT WAY? Because Docker.
- They won't show you the homework assignment. That would make it too easy.
- Your teacher is a fucking idiot.
- The more horrifyingly wrong a proposed solution is, the more likely it will be used.
- The newbie cannot explain what he is doing, or why. He will show you incomprehensible, nonworking code instead. What? You can't read his mind?!
- The person who is somehow responsible for 10000 machines knows jack shit about system administration.
- They won't show you their code, when it's a single command that is failing, even when you ask them to. But they'll dump an unsolicited 600 line script on a pastebin and expect you to read it all.
- Those who do not understand sysvinit are doomed to reinvent it. Poorly. (Those who DO understand it know to run like hell.)
- If something is a really bad idea, GNU will develop a nonstandard, nonportable tool to do it, not understanding that impossible things were impossible for a good reason.
- And then some of the BSDs will follow the GNU like sheep.
- If the noob is asking how to generate a random number, it's because the noob is writing a password generator. Because the noob is an idiot.
- The noob would rather waste several hours trying to dodge and weave through 4+ layers of quoting hell than spend 3 minutes putting the code in a file.
- The noob will spend 2 hours NOT answering "What are you trying to do?" instead of 3 minutes answering it.