[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: weird behaviour of quotes in dash variable assignments



On 2020-09-22 09:29, David Wright wrote:
On Mon 21 Sep 2020 at 20:50:29 (-0400), Gary Dale wrote:
On 2020-09-21 10:30, David Wright wrote:
On Mon 21 Sep 2020 at 08:18:52 (-0400), Greg Wooledge wrote:
On Mon, Sep 21, 2020 at 07:55:45AM -0400, Cindy Sue Causey wrote:
'…' and "…" are known as neutral, vertical, straight, typewriter,
dumb, or ASCII quotation marks.

‘…’ and “…” are known as typographic, curly, curved, book, or smart
quotation marks.
Yes.  This is one of the possible causes for the behavior the OP was
reporting.  But if this is true, then it reveals that they were lying
when they claimed that the scripts were the same on both servers.

[…]

To beat a dead horse some more, if *this* was the OP's problem, then they
told multiple lies about it.  They did not paste the actual failing line
from the failing script (probably retyped it instead), and they did not
ACTUALLY COMPARE the two scripts to see whether they were different,
instead simply ASSUMING that the two scripts were identical, even though
they very clearly weren't.

An actual troubleshooting would have done something like using md5sum
on the script on each machine, and pasting the md5sum commands (including
the full script pathname) and their output to the mailing list.  Openness.

Or, hell, even "ls -l /full/pathname" would probably have revealed that
the scripts were not the same SIZE.  That would also have shown immediately
that the scripts were not "the same".
I think we should apply Hanlon's razor rather than saying the OP lied.
After all, "compare" means diff or cmp to us, whereas many might just
use their eyeballs. And we all know that authors are the worst people
to check their own work. Proof-reading is a special skill.

Even their fix is poorly described. Did they just type the quotes back
in with an editor, in which case there's no guarantee that the scripts
are identical between machines, or did they transfer a working script
to the failing machine? The best line is save until last: "I certainly
didn't update anything on either server...". Well, yes, that's
*precisely* what you did: you updated the script.
                               ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
You are taking my quote out of context. I didn't change anything on
the server to make the script start working. I updated the script to
                                                ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
see if it would work after trying Greg's test. There were no program
or setting updates on the server, and certainly nothing that updated
dash. This is Debian/Stable we're talking about, after all.
Sorry, I thought you wrote that on Sunday afternoon, "I fixed it by
removing the quotes on the one server but now the scripts are
different between the two servers, which isn't what I want."
Then on Sunday evening, you wrote "When I retried my script with the
quotes, it started working."

The general opinion is that the script was faulty, probably in the
quotes used. The narrative says that you removed the quotes, and
later put them back. It seems fair to suggest that the quotes you
put back were not the same ones that you removed. They were replaced
in the same location, but you didn't put the old (removed) quotes
into a little two-character file, so that you could put precisely
the same ones back into the script, did you?
I thought about that but then there would be no way I could demonstrate it other than what I did - post the offending line via cut & paste, a method people have been arguing can change the quotes.

Since it is a file server, there probably were changes to the files on
its shares, but I'd hardly count that as an "update". Similarly, it
was running cron jobs for backups and virus scans (unsuccessfully) but
again I wouldn't call those "updates".
Nor I. No, I'm only talking about your script. Does it bear any
relation to the one posted in your blog? The first line (after
the shebang) of the one in the blog is the same line that's under
discussion here, and has curly quotes. I can't parse the second
line's curly quotes, and the fourth line uses an n-dash for a
hyphen *though the other hyphens are ok). The fifth line uses
curly single-quotes. More curly quotes follow.

I don't see any cause for our wasting time pondering on dash
without your posting an MWE that unambiguously demonstrates a
problem.
Yes, that's the script - copy-pasted from the working server then with the e-mail addresses changed (they are actually parameters to the working script, but why complicate things when explaining a basic script). As you noted, it has changed things - hopefully not to the point that people won't be able to make it work. I haven't found a way to stop Wordpress from doing the substitution but I note the raw text is still correct (once you remove the html).


Reply to: