Portanto, não tenho experiência em lidar com uma infinidade de tipos de arquivo e não consegui encontrar muitas informações sobre o que exatamente .sh
são os arquivos. Aqui está o que estou tentando fazer:
Estou tentando baixar conjuntos de dados de mapas que estão organizados em blocos que podem ser baixados individualmente: http://daymet.ornl.gov/gridded
Para baixar uma série de blocos de uma vez, eles pedem para baixar seu script, que eventualmente leva a daymet-nc-retrieval.sh
: https://github.com/daymet/scripts/blob/master/Bash/daymet-nc-retrieval.sh
Então, o que exatamente devo fazer com este código? O site não fornece instruções adicionais, presumindo que os usuários saibam o que fazer com ele. Suponho que você deve colar o código em algum outro aplicativo não mencionado para um navegador (usando o Chrome ou Firefox, neste caso). Quase parece algo que poderia ser colado no Firefox / Greasemonkey, mas não exatamente. Apenas por uma rápida pesquisa no Google sobre o tipo de arquivo, eu não consegui achar cara ou coroa.
Tenho certeza de que há uma explicação simples sobre o que fazer com esses arquivos, mas parece estar enterrada em muitos posts onde as pessoas já estão presumindo que você sabe o que fazer com esses arquivos. Alguém disposto a simplesmente dizer o que precisa ser feito desde a estaca zero, depois de chegar à página com o código, para realmente implementá-lo? Obrigado.
fonte
Respostas:
Se você abrir seu segundo link em um navegador, verá o código-fonte:
#!/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
Portanto, é um script bash. Tem Linux?
Em qualquer caso, o script nada mais é do que uma série de recuperações HTTP. Tanto wget quanto curl estão disponíveis para a maioria dos sistemas operacionais e quase todas as linguagens têm bibliotecas HTTP, portanto, é bastante trivial reescrever em qualquer outra tecnologia. Existem também algumas portas do próprio bash para Windows (o git inclui uma). Por último, mas não menos importante, o Windows 10 agora tem suporte nativo para binários Linux .
fonte
O que é um arquivo com extensão .sh?
É um script de shell Bourne . Eles são usados em muitas variações de sistemas operacionais semelhantes ao UNIX. Eles não têm "linguagem" e são interpretados pelo seu shell (intérprete de comandos do terminal) ou se a primeira linha estiver na forma
#!/path/to/interpreter
eles usarão esse intérprete específico. Seu arquivo tem a primeira linha:
#!/bin/bash
e isso significa que ele usa Bourne Again Shell, também chamado de bash. Para todos os efeitos práticos, é um substituto do bom e velho sh.
Dependendo do intérprete, você terá um idioma diferente no qual o arquivo foi escrito.
Lembre-se de que no mundo UNIX, não é a extensão do arquivo que determina o que o arquivo é (veja Como executar um script de shell).
Se você vem do mundo do DOS / Windows, deve estar familiarizado com os arquivos com as extensões .bat ou .cmd (arquivos em lote). Eles não são semelhantes em conteúdo, mas são semelhantes em design.
Como executar um script de shell
Ao contrário de alguns sistemas operacionais bobos, * nix não depende exclusivamente de extensões para determinar o que fazer com um arquivo. As permissões também são usadas. Isso significa que se você tentar executar o script de shell após baixá-lo, será o mesmo que tentar "executar" qualquer arquivo de texto. A extensão ".sh" existe apenas para sua conveniência para reconhecer esse arquivo.
Você precisará tornar o arquivo executável. Vamos supor que você tenha baixado seu arquivo como
file.sh
, pode então executar em seu terminal:chmod
é um comando para alterar as permissões do arquivo,+x
definir as permissões de execução (neste caso para todos) e finalmente você tem o nome do arquivo.Você também pode fazer isso na GUI. Na maioria das vezes você pode clicar com o botão direito do mouse no arquivo e selecionar propriedades, no XUbuntu as opções de permissão são assim:
Se você não deseja alterar as permissões. Você também pode forçar o shell a executar o comando. No terminal, você pode executar:
O shell deve ser o mesmo da primeira linha do seu script.
Quão seguro é isso?
Você pode achar estranho executar outra tarefa manualmente para executar um arquivo. Mas isso se deve parcialmente à grande necessidade de segurança.
Basicamente, quando você baixa e executa um script bash, é a mesma coisa que alguém dizendo "execute todos esses comandos em sequência no seu computador, prometo que os resultados serão bons e seguros". Pergunte a si mesmo se você confia na parte que forneceu este arquivo, pergunte-se se você tem certeza de que baixou o arquivo do mesmo lugar que você pensava, talvez até dê uma olhada dentro para ver se algo parece fora do lugar (embora isso exija que você sabe algo sobre comandos * nix e programação bash).
Infelizmente, além do aviso acima, não posso dar uma descrição passo a passo do que você deve fazer para evitar que coisas ruins aconteçam com seu computador; Portanto, lembre-se de que sempre que você obtém e executa um arquivo executável de alguém, na verdade está dizendo: "Claro, você pode usar meu computador para fazer algo".
fonte
sh
os arquivos são arquivos executáveis do shell do Unix (linux), eles são equivalentes (mas muito mais poderosos) aosbat
arquivos do Windows.Então você precisa executá-lo em um console Linux, apenas digitando seu nome da mesma forma que você faz com arquivos bat no Windows.
fonte
chmod +x file.sh
Normalmente, um arquivo .sh é um script de shell que pode ser executado em um terminal. Especificamente, o script que você mencionou é um script bash, que você pode ver se abrir o arquivo e olhar a primeira linha do arquivo, que é chamada de shebang ou linha mágica.
fonte
Eu sei que esta é uma questão antiga e provavelmente não vou ajudar, mas muitas distribuições Linux (por exemplo, ubuntu) têm uma função "Live cd / usb", então se você realmente precisa executar este script, pode tentar inicializar seu computador no Linux. Basta gravar um .iso em uma unidade flash ( veja como http://goo.gl/U1wLYA ), iniciar o computador com a unidade conectada e pressionar a tecla F para o menu de inicialização. Se você escolher "... USB ...", inicializará no sistema operacional que acabou de colocar na unidade.
fonte
abra o local no terminal e digite estes comandos 1. chmod + x nome do arquivo.sh 2. ./ nome do arquivo.sh é isso
fonte