什么是.sh 文件?

因此,我没有经验处理过多的文件类型,我还没有能够找到什么 .sh文件的确切信息。这就是我要做的:

我试图下载地图数据集,这是安排在瓦片,可以单独下载: http://daymet.ornl.gov/gridded

为了一次下载一系列的瓦片,他们说要下载他们的脚本,这最终导致 daymet-nc-retrieval.sh: https://github.com/daymet/scripts/blob/master/Bash/daymet-nc-retrieval.sh

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

我相信对于如何处理这些文件有一个简单的解释,但是它似乎被大量的帖子所掩盖,人们已经假设你知道如何处理这些文件。有没有人愿意简单地说一下,在获得实际实现代码的页面之后,需要从零开始做些什么?谢谢。

586305 次浏览

sh文件是 unix (linux) shell 可执行文件,它们与 windows 上的 bat文件相当(但是更强大)。

因此,您需要从一个 linux 控制台运行它,只需输入它的名称,就像在 windows 上输入 bat 文件一样。

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

#!/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 库,因此在任何其他技术中重写都相当简单。还有一些 bash 本身的 Windows 端口(git 包括一个)。最后但同样重要的是,Windows10现在有了 对 Linux 二进制文件的本机支持

典型的。Sh 文件是可以在终端中执行的 shell 脚本。具体来说,您提到的脚本是一个 bash 脚本,如果打开文件并查看文件的第一行(称为 shebang 或 Magic line) ,就可以看到 bash 脚本。

我知道这是一个老问题,我可能帮不上忙,但是许多 Linux 发行版(例如 ubuntu)都有一个“ Live cd/usb”函数,所以如果你真的需要运行这个脚本,你可以尝试启动你的计算机到 Linux。烧掉一个。ISO 到一个闪存驱动器(这里是如何 http://goo.gl/U1wLYA) ,启动您的电脑与驱动器插入,并按 F 键启动菜单。如果您选择“ ... USB...”,您将启动到您刚才放在驱动器上的操作系统。

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

这是 Bourne shell 脚本。它们用于许多类 UNIX 操作系统的变体。它们没有“语言”,由 shell (终端命令的解释器)解释,或者如果第一行是表单的话

#!/path/to/interpreter

他们将使用那个特定的解释器。你的文件有第一行:

#!/bin/bash

这意味着它使用了 bash,也就是 bash。这是为了所有的实际目的,一个良好的老鱼的替代品。

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

请记住,在 UNIX 世界中,决定文件是什么的不是文件的扩展名(参见下面的“如何执行 shell 脚本”)。

如果您来自 DOS/Windows 世界,您将熟悉具有。蝙蝠或者。Cmd 扩展(批处理文件)。它们在内容上不相似,但在设计上相似。

如何执行 shell 脚本

与某些不安全的操作系统不同,* nix 并不完全依赖于扩展来确定如何处理文件。还使用权限。这意味着如果您在下载 shell 脚本之后尝试运行它,它将与尝试“运行”任何文本文件相同。「。扩展名的存在只是为了方便您识别该文件。

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

chmod +x file.sh

chmod是一个用于更改文件权限的命令,+x设置执行权限(在这种情况下是针对所有人的) ,最后得到文件名。

您也可以在 GUI 中完成这项工作。大多数时候,你可以右键单击文件并选择属性; 在 XUbuntu 中,权限选项如下所示:

File permissions in XUbuntu

如果不希望更改权限,还可以强制 shell 运行该命令。在终端你可以运行:

bash file.sh

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

有多安全?

您可能会发现,为了执行一个文件,必须手动执行另一个任务,这很奇怪。但这在一定程度上是出于对安全的强烈需求。

基本上,当你下载并运行一个 bash 脚本时,就像有人告诉你“在你的计算机上按顺序运行所有这些命令,我保证结果是好的和安全的”。问问你自己是否相信提供这个文件的团队,问问你自己是否确定你从你认为的同一个地方下载了这个文件,也许甚至看一眼里面是否有什么东西看起来不对劲(尽管这需要你知道一些关于 * nix 命令和 bash 编程的知识)。

不幸的是,除了上面的警告,我不能给出一个一步一步的描述,你应该做什么,以防止邪恶的事情发生在你的电脑上; 所以只要记住,任何时候你得到并运行一个可执行文件从某人你实际上说,“当然,你可以使用我的电脑做一些事情”。

在终端打开位置,然后键入这些命令 1. chmod + x filename.sh 2. ./filename.sh 就是这样

如何运行.sh 脚本?

授予脚本执行权限:

Chmod + x/path/to/yourscript.sh 运行你的脚本:

/path/to/yourscript.sh 如果你的 script.sh 在工作目录工作目录中,你可以简化为:

./yourscript. sh

或图形用户界面

enter image description here enter image description here

Https://askubuntu.com/questions/38661/how-do-i-run-sh-scripts/38666#38666

Https://www.cyberciti.biz/faq/run-execute-sh-shell-script/