AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

【わからん】CLI での標準出力メッセージを利用する際の文中の囲い (クォートとグレイヴ・アクセント) の違い【なんて調べればいいんだ?】

掲題の通りですが、具体例は以下です。

rbenv の出力例

[ec2-user@localhost ~]$ rbenv install -l
3.2.5
3.3.5
jruby-9.4.8.0
mruby-3.3.0
picoruby-3.0.0
truffleruby-24.1.0
truffleruby+graalvm-24.1.0

Only latest stable releases for each Ruby implementation are shown.
Use `rbenv install --list-all' to show all local versions.

最後の一文の、コマンドをくくっている部分ですね。 前方が `(グレイヴ・アクセント) に対して、対応する末尾が '(シングルクォート) になっています。

Markdown の解釈次第では、グレイヴ・アクセントの末尾がなくて colorize やら formatter がうまいこと解釈できない、みたいなパターンが存在します。 はてなブログは大丈夫そうすね。

上記のコード実装部

github.com

似たような用途 (同リポジトリ内) だと以下。

github.com

使い分けがよくわかんないな?

最初はグレイブ・アクセントで囲むと例えば `git` のようになって、コマンドとしてパースされるおそれがあるから前方と末尾をあえて echo をくくるダブルクォート以外で使い分けているのかな? と思っていました。

ただ同リポジトリを見ていると、以下のようにグレイヴ・アクセントでまとめている所もあるので「🤔」となっている。

    echo "error: please install \`git\` and try again" >&2

こういうの、なんて検索したら理由わかるんだろうか。 使っている Markdown エディタの formatter が時々壊れるのなんでだ〜、から気付いたんだけど、使い分けが謎だ。

追記

と思ったら Wikipedia さんに書いてあった。

ja.wikipedia.org

' (U+0027 アポストロフィ) とのセット `……' がシングルクォーテーションマーク ‘……’ の代用として使われる。また、``(グレイヴ2つ)を " (U+0022 クォーテーションマーク) またはアポストロフィ2つと組み合わせた ``……"・``……'' がダブルクォーテーションマーク “……” の代用として使われる。TeXではソースに「`」や「``」を書くと引用符に変換される。

いずれも正規の(開き)シングル/ダブルクォーテーションマークを使える環境では好ましい用法ではないことは確かだが、前述のように歴史的理由から現在でも多用されている。

は〜なるほど、特に用法上では特異な意図 (シェルにコマンドと誤認されないように、などの処理上の理由寄りの) があるわけじゃないのか。

開きシングルクォート、という用法が個人的に馴染みなかったのでへぇってなった。 へえ。