2011-12-19 75 views
12

我需要创建一个bash脚本,将在mac上工作。它需要下载站点的ZIP文件并将其解压缩到特定位置。如何编写BASH脚本在Mac上下载和解压缩文件?

  1. 文件下载的ZIP文件(curl -O
  2. 解压缩到一个特定的位置(unzip filename.zip path/to/save
  3. 删除.zip文件

我需要它使人们可以双精度点击桌面上的文本文件,它会自动运行在终端中。

我该怎么做才能使用户可以双击桌面上的图标,它会运行?该文件需要什么扩展名?

+1

该文件需要'.cmd'扩展名。 – 2011-12-19 05:12:03

+0

.command也一样。 – alecwhardy 2011-12-19 05:54:57

+0

'curl -L http://example.org/file.zip | bsdtar -xvf -C/path/to/save' – davidcondrey 2017-03-16 15:47:22

回答

19

OSX使用相同的GNU SH/bash作为Linux的

#!/bin/sh 

mkdir /tmp/some_tmp_dir       && \ 
cd /tmp/some_tmp_dir       && \ 
curl -sS http://foo.bar/filename.zip > file.zip && \ 
unzip file.zip         && \ 
rm file.zip 

第一行#!/bin/sh是所谓的“认领”行,是强制性的

+2

默认情况下'wget'没有安装在Mac OS中。 'curl'是。 – 2011-12-19 05:08:58

+0

更改为curl – 2011-12-19 05:42:42

+2

正确的方式是curl -O – alecwhardy 2011-12-19 05:55:48

13

BSD焦油可以打开一个压缩文件,并通过解压缩流。因此,以下将起作用:

curl http://example.org/file.zip | tar -xf - -C path/to/save 
+5

该文件必须是一个tar文件,否则'tar:这看起来不像一个tar归档文件' – 2015-11-09 17:52:39