Ton*_*y H 71 linux sh download-manager
所以我没有经验处理过多的文件类型,而且我还没有找到关于究竟是什么.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中,但并不完全.只是通过一个快速谷歌的文件类型我无法得到它的正面或反面.
我确信有一个关于如何处理这些文件的简单解释,但它似乎埋藏在很多帖子中,人们已经假设你知道如何处理这些文件.有人愿意只是简单地说明在使用实际实现代码的页面之后需要从正方形做什么?谢谢.
v01*_*dya 99
什么是扩展名为.sh的文件?
它是一个Bourne shell脚本.它们用于类UNIX操作系统的许多变体中.它们没有"语言",并且由shell(终端命令的解释器)解释,或者第一行是否在表单中
#!/path/to/interpreter
Run Code Online (Sandbox Code Playgroud)
他们会使用那个特定的翻译.您的文件有第一行:
#!/bin/bash
Run Code Online (Sandbox Code Playgroud)
这意味着它使用Bourne Again Shell,所谓的bash.它是出于所有实际目的的替代品.
根据解释器的不同,您将使用不同的语言编写文件.
请记住,在UNIX世界中,它不是确定文件内容的文件的扩展名(请参阅如何执行shell脚本).
如果您来自DOS/Windows世界,您将熟悉具有.bat或.cmd扩展名(批处理文件)的文件.它们的内容不相似,但在设计上类似.
如何执行shell脚本
与某些愚蠢的操作系统不同,*nix不完全依赖扩展来确定如何处理文件.权限也被使用.这意味着如果您在下载后尝试运行shell脚本,它将与尝试"运行"任何文本文件相同.".sh"扩展名只是为了方便您识别该文件.
您需要使文件可执行.假设您已经下载了文件file.sh,然后可以在终端中运行:
chmod +x file.sh
Run Code Online (Sandbox Code Playgroud)
chmod是一个更改文件权限的命令,+x设置执行权限(在这种情况下为每个人),最后你有你的文件名.
您也可以在GUI中执行此操作.大多数情况下,您可以右键单击该文件并选择属性,在XUbuntu中,权限选项如下所示:
如果您不想更改权限.您还可以强制shell运行该命令.在终端中,您可以运行:
bash file.sh
Run Code Online (Sandbox Code Playgroud)
shell应该与脚本的第一行相同.
它有多安全?
您可能会发现,为了执行文件,您必须手动执行其他任务,这很奇怪.但这部分是因为对安全的强烈需求.
基本上当你下载并运行一个bash脚本时,就像有人告诉你"在你的计算机上按顺序运行所有这些命令,我保证结果将是安全的"是一回事.问问自己是否信任提供此文件的一方,问问自己是否确定已经从您想到的同一个地方下载了文件,甚至可以在里面看一眼看看有什么不合适的地方(尽管这需要你对*nix命令和bash编程有所了解.
不幸的是,除了上面的警告,我无法逐步说明你应该做些什么来防止计算机发生恶事; 所以请记住,每当你从一个你实际上在说的人那里得到并运行一个可执行文件时,"当然,你可以用我的电脑做点什么".
Álv*_*lez 43
如果您在浏览器中打开第二个链接,您将看到源代码:
#!/bin/bash
# Script to download individual .nc files from the ORNL
# Daymet server at: http://daymet.ornl.gov
Run Code Online (Sandbox Code Playgroud)
[...]
# 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
Run Code Online (Sandbox Code Playgroud)
所以这是一个bash脚本.有Linux吗?
在任何情况下,脚本都只是一系列HTTP检索.wget和curl都可用于大多数操作系统,几乎所有语言都有HTTP库,因此在任何其他技术中重写都相当简单.还有一些bash本身的Windows端口(git包含一个).最后但同样重要的是,Windows 10现在支持Linux二进制文件.
Nel*_*son 31
sh文件是unix(linux)shell可执行文件,它们是batWindows上等效(但功能更强大)的文件.
因此,您需要从Linux控制台运行它,只需键入与Windows上的bat文件相同的名称.
小智 5
通常,.sh 文件是可以在终端中执行的 shell 脚本。具体来说,您提到的脚本是一个 bash 脚本,如果您打开文件并查看文件的第一行(称为 shebang 或 magic line),就可以看到该脚本。