it-swarm.com.de

Was ist eine .sh-Datei?

Ich habe also keine Erfahrung im Umgang mit einer Fülle von Dateitypen, und ich habe nicht viel darüber erfahren können, was genau .sh-Dateien sind. Folgendes versuche ich zu tun:

Ich versuche, Kartendatensätze herunterzuladen, die in Kacheln angeordnet sind, die einzeln heruntergeladen werden können: http://daymet.ornl.gov/gridded

Um eine Reihe von Kacheln gleichzeitig herunterzuladen, sagen sie, dass sie ihr Skript herunterladen sollen, was schließlich zu daymet-nc-retrieval.sh: https://github.com/daymet/scripts/blob/master/Bash/daymet-nc-retrieval führt. Sch

Was genau soll ich mit diesem Code machen? Die Website enthält keine weiteren Anweisungen, vorausgesetzt die Benutzer wissen, was sie damit tun sollen. Ich vermute, Sie sollten den Code in eine andere, nicht erwähnte Anwendung für einen Browser einfügen (in diesem Fall Chrome oder Firefox)? Es sieht fast wie etwas aus, das in Firefox/Greasemonkey eingefügt werden könnte, aber nicht ganz. Nur durch ein kurzes Google in Bezug auf den Dateityp konnte ich es nicht verstehen. 

Ich bin sicher, es gibt eine einfache Erklärung, was mit diesen Dateien zu tun ist, aber es scheint in einer Menge von Posts begraben zu sein, in denen die Leute bereits davon ausgehen, dass Sie wissen, was mit diesen Dateien zu tun ist. Jeder, der bereit ist, einfach zu sagen, was von Quadrat eins zu tun ist, nachdem er auf die Seite mit dem Code gelangt ist, um ihn tatsächlich zu implementieren? Vielen Dank.

53
Tony H

Wenn Sie Ihren zweiten Link in einem Browser öffnen, wird der Quellcode angezeigt:

#!/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

Es ist also ein Bash-Skript. Hast du Linux?


In jedem Fall besteht das Skript lediglich aus einer Reihe von HTTP-Abrufen. Sowohl Wget als auch Curl sind für die meisten Betriebssysteme verfügbar, und fast alle Sprachen verfügen über HTTP-Bibliotheken. Daher ist es ziemlich trivial, sie mit jeder anderen Technologie umzuschreiben. Es gibt auch einige Windows-Ports von Bash selbst (git enthält einen). Nicht zuletzt unterstützt Windows 10 jetzt native Unterstützung für Linux-Binärdateien .

34

Was ist eine Datei mit der Erweiterung .sh?

Es ist ein Bourne Shell-Skript . Sie werden in vielen Variationen von UNIX-ähnlichen Betriebssystemen verwendet. Sie haben keine "Sprache" und werden von Ihrer Shell (Interpreter der Terminalbefehle) interpretiert oder wenn die erste Zeile im Formular enthalten ist

#!/path/to/interpreter

sie werden diesen bestimmten Interpreter verwenden. Ihre Datei hat die erste Zeile:

#!/bin/bash

und das bedeutet, dass es Bourne Again Shell, so genannte bash, verwendet. Es ist für alle praktischen Zwecke ein Ersatz für gute alte sh.

Je nach Dolmetscher haben Sie unterschiedliche Sprachen, in denen die Datei geschrieben wird.

Beachten Sie, dass in der UNIX-Welt nicht die Dateierweiterung die Datei bestimmt (siehe Ausführen eines Shell-Skripts).

Wenn Sie aus der Welt von DOS/Windows stammen, sind Sie mit Dateien mit der Erweiterung .bat oder .cmd (Batch-Dateien) vertraut. Sie sind inhaltlich nicht ähnlich, aber im Design ähnlich.

So führen Sie ein Shell-Skript aus

Im Gegensatz zu einigen dummen Betriebssystemen ist * nix nicht ausschließlich auf Erweiterungen angewiesen, um festzustellen, was mit einer Datei zu tun ist. Berechtigungen werden ebenfalls verwendet. Das heißt, wenn Sie versuchen, das Shell-Skript nach dem Herunterladen auszuführen, ist dies dasselbe wie beim Versuch, eine beliebige Textdatei "auszuführen". Die Erweiterung ".sh" dient nur dazu, diese Datei zu erkennen.

Sie müssen die Datei ausführbar machen. Nehmen wir an, Sie haben Ihre Datei als file.sh heruntergeladen. Sie können sie dann in Ihrem Terminal ausführen:

chmod +x file.sh

chmod ist ein Befehl zum Ändern der Dateiberechtigungen, +x setzt Ausführungsberechtigungen (in diesem Fall für alle) und schließlich haben Sie Ihren Dateinamen.

Sie können es auch in GUI tun. In den meisten Fällen können Sie mit der rechten Maustaste auf die Datei klicken und Eigenschaften auswählen. In XUbuntu sehen die Berechtigungsoptionen folgendermaßen aus:

 File permissions in XUbuntu

Wenn Sie die Berechtigungen nicht ändern möchten. Sie können die Shell auch dazu zwingen, den Befehl auszuführen. Im Terminal können Sie Folgendes ausführen:

bash file.sh

Die Shell sollte dieselbe sein wie in der ersten Zeile Ihres Skripts.

Wie sicher ist es?

Es kann seltsam sein, dass Sie manuell eine andere Aufgabe ausführen müssen, um eine Datei auszuführen. Dies ist jedoch zum Teil auf ein starkes Sicherheitsbedürfnis zurückzuführen.

Wenn Sie ein bash-Skript herunterladen und ausführen, ist es im Grunde dasselbe, als würde Ihnen jemand sagen: "Führen Sie alle diese Befehle nacheinander auf Ihrem Computer aus. Ich verspreche Ihnen, dass die Ergebnisse gut und sicher sind". Fragen Sie sich, ob Sie der Partei, die diese Datei geliefert hat, vertrauen, oder sich fragen, ob Sie sicher sind, dass die Datei von der gleichen Stelle heruntergeladen wurde, an der Sie gedacht haben. Vielleicht haben Sie sogar einen Blick darauf, ob etwas nicht richtig aussieht (obwohl dies erforderlich ist dass Sie etwas über * Nix-Befehle und die Bash-Programmierung wissen).

Abgesehen von der obigen Warnung kann ich leider nicht Schritt für Schritt beschreiben, was Sie tun sollten, um zu verhindern, dass böse Dinge mit Ihrem Computer passieren. Denken Sie also daran, dass Sie jedes Mal, wenn Sie eine ausführbare Datei von jemandem abrufen und ausführen, tatsächlich sagen: "Sicher, Sie können meinen Computer verwenden, um etwas zu tun".

76
v010dya

sh-Dateien sind ausführbare Dateien der Unix-Shell (linux). Sie sind die äquivalenten (aber wesentlich leistungsfähigeren) bat-Dateien unter Windows.

Sie müssen es also von einer Linux-Konsole aus ausführen. Geben Sie einfach den gleichen Namen wie bei bat-Dateien unter Windows ein.

29
Nelson

Eine .sh-Datei ist normalerweise ein Shell-Skript, das Sie in einem Terminal ausführen können. Das von Ihnen erwähnte Skript ist insbesondere ein Bash-Skript, das Sie sehen können, wenn Sie die Datei öffnen und in die erste Zeile der Datei schauen, die als Shebang- oder Zauberlinie bezeichnet wird.

4
David Bauer

Eine .sh-Datei ist eine Shell-Datei. Es kann verwendet werden, um Programme zu öffnen und was nicht.

1
Buckell

Ich weiß, das ist eine alte Frage und ich werde wahrscheinlich nicht helfen, aber viele Linux-Distributionen (z. B. Ubuntu) verfügen über eine "Live-CD/USB-Funktion". Wenn Sie also dieses Skript wirklich ausführen müssen, versuchen Sie, Ihren Computer zu booten in Linux. Brennen Sie einfach eine .iso-Datei auf ein Flash-Laufwerk (wie folgt: http://goo.gl/U1wLYA ), starten Sie den Computer mit angeschlossenem Laufwerk und drücken Sie die Taste F, um das Startmenü zu öffnen. Wenn Sie "... USB ..." wählen, booten Sie in dem Betriebssystem, das Sie gerade auf das Laufwerk gelegt haben.

1
Sam

Öffnen Sie den Speicherort im Terminal und geben Sie diese Befehle ein 1. chmod + x Dateiname.sh 2. ./filename.shdas ist es

0
PRAKHAR GUPTA