这个最后带反斜杠的命令有什么作用?

Sta*_*Bug 18 bash shell-script curl

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 \
Run Code Online (Sandbox Code Playgroud)

它会下载一个名为 的文件docker-machine-driver-kvm-ubuntu14.04,然后呢?将其发送到目录/usr/local/bin/docker-machine-driver-kvm

还有,\最后呢?

Kus*_*nda 23

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

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

它最常用于这样的情况(即更容易阅读长命令):

rsync --archive \
      --verbose \
      user@source:/dir/ \
      user@target:/dir/
Run Code Online (Sandbox Code Playgroud)

请注意,最后一行不以 结尾,\因为它不会在下一行继续。另请注意,以这种方式分解的行后面可能没有任何内容(甚至不是评论或单个空格)\

除此之外,是的,该命令会下载文件并将其保存到磁盘上的文件中。做同样事情的另一种方式,没有重定向,是我们 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 \
Run Code Online (Sandbox Code Playgroud)

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

  • @StaticBug严格来说可能不是一个命令,而是“curl”命令的延续。 (2认同)