什么是.sh文件?

所以我没有经验处理过多的文件types,我一直无法find什么.sh文件的很多信息。 这是我想要做的:

我正尝试下载地图数据集,这些地图数据集可以单独下载,也可以单独下载: http : //daymet.ornl.gov/gridded

为了一次下载一系列图块,他们说要下载他们的脚本,最终导致daymet-nc-retrieval.sh nc-retrieval.sh

那么,我应该怎么做这个代码呢? 网站不提供进一步的指示,假设用户知道如何处理它。 我猜你应该将代码粘贴到其他未提及的浏览器应用程序(在这种情况下使用Chrome或Firefox)? 它几乎看起来像是可以粘贴到Firefox / Greasemonkey,但不完全。 只是通过一个快速的谷歌文件types,我还没有能够得到正面或反面的。

我确信有一个关于如何处理这些文件的简单解释,但似乎埋在了大量的post中,人们已经假设你知道如何处理这些文件。 任何人只要简单地说一下,在使用代码实际实现代码之后,需要从一个方面做什么才能做到呢? 谢谢。

如果您在浏览器中打开第二个链接,您将看到源代码:

 #!/bin/bash # Script to download individual .nc files from the ORNL # Daymet server at: http://daymet.ornl.gov 

[…]

 # For ranges use {start..end} # for individul vaules, use: 1 2 3 4 for year in {2002..2003} do for tile in {1159..1160} do wget --limit-rate=3m http://daymet.ornl.gov/thredds/fileServer/allcf/${year}/${tile}_${year}/vp.nc -O ${tile}_${year}_vp.nc # An example using curl instead of wget #do curl --limit-rate 3M -o ${tile}_${year}_vp.nc http://daymet.ornl.gov/thredds/fileServer/allcf/${year}/${tile}_${year}/vp.nc done done 

所以这是一个bash脚本。 有Linux吗?


无论如何,脚本只不过是一系列的HTTP检索。 wget和curl都可用于大多数操作系统,几乎所有的语言都有HTTP库,所以在其他任何技术中重写都是相当简单的。

什么是扩展名为.sh的文件?

这是一个Bourne shell脚本 。 它们被用在许多类UNIX操作系统的变体中。 他们没有“语言”,并由你的shell(terminal命令解释器)解释,或者如果第一行是在表单中

 #!/path/to/interpreter 

他们会使用这个特定的翻译。 你的文件有第一行:

 #!/bin/bash 

这意味着它使用Bourne Again Shell(所谓的bash)。 这是为了所有的实际目的,取代旧的嘘。

根据解释器的不同,您将使用不同的语言来编写文件。

请记住,在UNIX世界中,文件的扩展并不决定文件是什么(请参阅如何执行shell脚本)。

如果您来自DOS / Windows的世界,您将熟悉具有.bat或.cmd扩展名(batch file)的文件。 内容不相似,但在devise上相似。

如何执行一个shell脚本

与一些愚蠢的操作系统不同,* nix并不完全依赖扩展来决定如何处理文件。 权限也被使用。 这意味着如果你在下载之后试图运行这个shell脚本,它将和试图“运行”任何文本文件一样。 “.sh”扩展名只是为了方便您识别该文件。

您将需要使文件可执行。 假设您已经将文件下载为file.sh ,然后可以在terminal中运行:

 chmod +x file.sh 

chmod是一个改变文件权限的命令, +x设置执行权限(在这种情况下是每个人),最后你有你的文件名。

你也可以在GUI中完成。 大多数情况下,您可以右键单击文件并select属性,在XUbuntu中,权限选项如下所示:

在XUbuntu中的文件权限

如果你不想改变权限。 您也可以强制shell运行该命令。 在terminal中,您可以运行:

 bash file.sh 

shell应该与脚本的第一行相同。

它有多安全?

您可能会发现奇怪的是,您必须手动执行另一个任务才能执行文件。 但这部分是因为对安全性的强烈需求。

基本上,当你下载并运行一个bash脚本时,就像有人告诉你“在你的计算机上依次运行所有这些命令一样,我保证结果是好的”。 问问你自己,如果你信任提供这个文件的一方,问问自己是否确实已经从你想的那个地方下载了这个文件,甚至可以在里面查看是否看起来不合适(尽pipe这需要你知道一些关于* nix命令和bash编程)。

不幸的是除了上面的警告之外,我不能一步一步地描述你应该怎么做,以防止计算机发生邪恶事件。 所以请记住,无论何时你从某个人制作一个可执行文件,你都会说“我让你用我的电脑做一些事情”。

sh文件是unix(linux)shell可执行文件,它们是Windows上的bat文件的等价物(但function更强大)。

所以你需要从一个Linux控制台运行它,只需要input它的名字就像在Windows上使用bat文件一样。

通常,.sh文件是可以在terminal中执行的shell脚本。 具体来说,你提到的脚本是一个bash脚本,你可以看到,如果你打开该文件,看看文件的第一行,这就是所谓的shebang或魔术线。

我知道这是一个老问题,我可能不会帮助,但许多Linux发行版(如Ubuntu)有一个“Live CD / USB”function,所以如果你真的需要运行这个脚本,你可以尝试启动你的电脑进入Linux。 只需将闪存驱动器(.go)烧录到闪存驱动器( http://goo.gl/U1wLYA ),插入驱动器启动计算机,然后按F键启动菜单。 如果您select“… USB …”,您将引导到您刚刚放入驱动器的操作系统。

.sh文件是一个shell文件。 它可以用来打开程序,什么不是。

打开terminal的位置,然后input这些命令1. chmod + x filename.sh 2. ./filename.sh就是这样