Что такое А. 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 варианты разрешения выглядеть так:
если вы не хотите изменить разрешения. Вы также можете заставить оболочку выполнить команду. В терминале вы можете запустить:
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...", вы загрузитесь в ОС, которую вы только что поставили на диск.
откройте местоположение в терминале, затем введите эти команды 1. chmod +x filename.sh 2. ./filename.sh вот оно!--1-->