作業ノート

様々なまとめ、雑感など

コマンドの先頭にバックスラッシュをつける理由

RVMをインストールする機会があり、手順を確認してインストールした。

\curl -sSL https://get.rvm.io | bash -s stable

このときcurlの先頭に\がついているのが気になり、付けない場合と何が違うのか調べた。

\つける理由は、shellのエイリアスの影響を受けないようにするため。

エイリアスはある単語を別の単語に置換するためのリスト。コマンドの先頭の単語がこのリストに一致するときに、別の単語に置換する。ただし、その単語がクォートされているときは置換されない。

一方で、\はそのあとの1文字をクォートするエスケープ文字で、\curlは先頭の一文字のみクォートした単語となる。これがエイリアスの条件を満たさないようで、これを狙った記法のようだ。

前述のとおり、単語がクォートされているときは置換されないので、コマンドを

'curl' -sSL https://get.rvm.io | bash -s stable

シングルクォートや

"curl" -sSL https://get.rvm.io | bash -s stable

ダブルクォートで囲んでも同様で、エイリアスは適用されない。

参考