Что такое А. 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, но не совсем. Просто быстрый Google по типу файла я не смог получить орел или решку на нем.

Я уверен, что есть простое объяснение того, что делать с этими файлами, но, похоже, он похоронен во многих сообщениях, где люди уже предполагают, что вы знаете, что делать с этими файлами. Кто-нибудь хочет просто сказать, что нужно сделать с square one после перехода на страницу с кодом, чтобы фактически реализовать его? Спасибо.

7 ответов


Если вы открываете вторую ссылку в браузере, вы увидите исходный код:

#!/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, поэтому переписать в любой другой технологии довольно тривиально. Есть также некоторые порты Windows самого bash (git включает в себя один). И последнее, но не менее важное: Windows 10 теперь имеет встроенная поддержка для Linux.


Что такое файл с расширением .sh?

это Бурн скрипт. Они используются во многих вариациях UNIX-подобных операционных систем. Они не имеют "языка" и интерпретируются вашей оболочкой (интерпретатором терминальных команд) или если первая строка находится в форме

#!/path/to/interpreter

они будут использовать данный переводчик. В вашем файле есть первая строка:

#!/bin/bash

и это означает, что он снова использует Bourne Shell, так называемый Баш. Для всех практических целей это замена старой доброй рыбы.

в зависимости от интерпретатора у вас будет другой язык, на котором написан файл.

имейте в виду, что в мире UNIX не расширение файла определяет, что такое файл (см. Как выполнить сценарий оболочки).

если вы пришли из мира DOS / Windows, вы будете знакомы с файлами, которые имеют .летучая мышь или. расширения cmd (пакетные файлы). Они не похожи по содержанию, но сродни по дизайну.

Как выполнить скрипт

в отличие от некоторых глупых операционных систем, *nix не полагаются исключительно на расширения, чтобы определить, что делать с файлом. Также используются разрешения. Это означает, что если вы попытаетесь запустить сценарий оболочки после его загрузки, это будет то же самое, что пытаться "запустить" любой текстовый файл. The ".SH " расширение существует только для вашего удобства, чтобы признать, что файл.

вам нужно будет сделать файл исполняемым. Предположим, что вы загрузили свой файл как file.sh, затем вы можете запустить в своем терминале:

chmod +x file.sh

chmod - это команда для изменения разрешения файла, +x наборы разрешений (в данном случае для всех) и, наконец, у вас есть ваш файл.

вы также можете сделать это в GUI. Большую часть времени вы можете нажать правой кнопкой мыши по файлу и выбрать Свойства, в Xubuntu варианты разрешения выглядеть так:

File permissions in XUbuntu

если вы не хотите изменить разрешения. Вы также можете заставить оболочку выполнить команду. В терминале вы можете запустить:

bash file.sh

оболочка должна быть такой же, как в первой строке вашего скрипта.

насколько это безопасно?

вам может показаться странным, что вы должны выполнить другую задачу вручную, чтобы выполнить файл. Но это частично из-за сильного потребность в безопасности.

в основном, когда вы загружаете и запускаете скрипт bash, это то же самое, что кто-то говорит вам: "запустите все эти команды последовательно на вашем компьютере, я обещаю, что результаты будут хорошими". Спросите себя, доверяете ли вы стороне, которая предоставила этот файл, спросите себя, уверены ли вы, что загрузили файл с того же места, как вы думали, может быть, даже заглянуть внутрь, чтобы увидеть, если что-то выглядит неуместным (хотя это требует, чтобы вы знали что-то о командах *nix и программировании bash).

к сожалению, помимо предупреждения выше, я не могу дать пошаговое описание того, что вы должны сделать, чтобы предотвратить злые вещи, происходящие с вашим компьютером; поэтому просто имейте в виду, что каждый раз, когда вы делаете файл из кого-то исполняемого файла, вы на самом деле говорите: "Я позволяю вам использовать мой компьютер, чтобы что-то сделать".


sh файлы-это файлы исполняемых файлов оболочки unix (linux), они эквивалентны (но гораздо более мощные)bat файлы в windows.

поэтому вам нужно запустить его с консоли linux, просто набрав его имя так же, как и с файлами bat в windows.


обычно a .SH-файл-это сценарий оболочки, который вы можете выполнить в терминале. В частности, сценарий, который вы упомянули, является сценарием bash, который вы можете увидеть, если откроете файл и посмотрите в первой строке файла, которая называется shebang или magic line.


Я знаю, что это старый вопрос, и я, вероятно, не помогу, но многие дистрибутивы Linux(например, ubuntu) имеют функцию "Live cd/usb", поэтому, если вам действительно нужно запустить этот скрипт, вы можете попробовать загрузить свой компьютер в Linux. Просто сожги .iso на флэш-накопитель (вот как http://goo.gl/U1wLYA), запустите компьютер с подключенным диском и нажмите клавишу F для меню загрузки. Если хотите "...USB...", вы загрузитесь в ОС, которую вы только что поставили на диск.


A .SH-файл-это файл оболочки. Его можно использовать для открытия программ, а что нет.


откройте местоположение в терминале, затем введите эти команды 1. chmod +x filename.sh 2. ./filename.sh вот оно!--1-->