这个末尾带有反斜杠的命令有什么作用?

这个末尾带有反斜杠的命令有什么作用?
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

\还有,最后呢?

答案1

如果要自行解释该行,那么这看起来像是一个错误。

反斜杠会转义下一个字符,使其不被 shell 解释。如果反斜杠后面的下一个字符是换行符,则该换行符不会被 shell 解释为命令的结尾。相反,它有效地允许命令跨越多行。

当您想要更轻松地阅读长命令时,通常以这种方式断开长行:

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

请注意,最后一行不应\在末尾有 ,因为它是最后一行。注意没有什么(甚至没有注释或单个空格)可以遵循\以这种方式分解的行。

总之,是的,该命令下载文件并将其保存到磁盘上的文件中。在没有重定向的情况下执行相同操作的另一种方法是使用以下-o选项curl

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 \

(后跟脚本中下一行的任何内容)

相关内容