web-dev-qa-db-ja.com

最後にバックスラッシュを付けたこのコマンドは何をしますか?

curl -L https://github.com/dhiltgen/docker-machine-kvm/releases/download/v0.10.0/docker-machine-driver-kvm-ubuntu14.04 > /usr/local/bin/docker-machine-driver-kvm \

docker-machine-driver-kvm-ubuntu14.04というファイルをダウンロードしてから、それをディレクトリ/usr/local/bin/docker-machine-driver-kvmに送信しますか?

また、最後の\はどうですか?

8
StaticBug

行がそれ自体で解釈される場合、エラーのように見えます。

バックスラッシュは、シェルによって解釈されることから次の文字をエスケープします。次の文字が改行の場合、その改行はシェルによってコマンドの終わりとして解釈されません。これにより、コマンドは複数行にまたがることができます。

これは、次のような状況で最も一般的に使用されます(つまり、長いコマンドを読みやすくするため)。

rsync --archive \
      --verbose \
      user@source:/dir/ \
      user@target:/dir/

最後の行は\で終わっていないことに注意してください。次の行に続いていないためです。また、nothing(コメントも単一のスペースも)は、このように分割された行の\の後に続く場合があることに注意してください。

それとは別に、はい、コマンドはファイルをダウンロードしてディスク上のファイルに保存します。リダイレクトせずに同じことを行う別の方法は、Curlの-oオプションです。

curl -L \
    -o /usr/local/bin/docker-machine-driver-kvm \
    https://github.com/dhiltgen/docker-machine-kvm/releases/download/v0.10.0/docker-machine-driver-kvm-ubuntu14.04 \

(その後、スクリプトの次の行にあるものは何でも)

14
Kusalananda