curlのオプション-fsSLを読み解く

http://fjord.jp/tags/dont-be-afraid-kuroigamen
を参考にターミナルについて勉強しました。
この記事で知ったmanコマンドを使ってHomebrewをインストールしたときにターミナルにコピペしたであろう

$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

curlコマンドのオプションである -fsSLを読み解こうと思います。
manコマンドはmanualの略でありコマンド名を引数にとりそのコマンドの詳細を表示してくれるコマンドです。
manコマンドを使ってcurlコマンドの詳細情報を表示します。
ターミナルで

$ man curl

と入力し、
-f、-s、-S、-Lオプションの説明を探します。
f:id:hy4yh:20181206181122p:plain
curlコマンドによるHTTPリクエストでサーバーエラーによってリクエストが失敗したときに失敗した際に返されるhtmlを出力せず、22というEXIT CODE(curl内のエラーコード?)を返すみたいです。

f:id:hy4yh:20181206163425p:plain
-sコマンドを付与すると進行の状況もエラーメッセージも表示しない、ただし-Sコマンドと一緒に使用すると進行の状況は表示しないが、エラーメッセージは表示するようになるみたいです。

f:id:hy4yh:20181206170045p:plain
HTTPリクエストを投げたときに要求しているページが移動していることをサーバーが伝えてきた場合、移動先のページに再びリクエストを投げてくれるみたいです。

 

つまり-fsSL

  • HTTPリクエストがサーバーのエラーにより失敗した時に22というEXIT CODEを返す。
  • 進行の状況を表示せず、エラーメッセージは表示する。
  • アクセスしたページが移動していた場合、もう1度移動先にリクエストを送る。

というオプションになります。

その他参考URL
curl option 覚え書き - Qiita