Frage Wie führe ich .sh-Dateien aus?


Wenn ich eine .sh-Datei öffne, wird sie in gedit anstelle des Terminals geöffnet. Ich kann keine ähnliche Option finden Rechtsklick → Öffnen mit → Andere Anwendung ... → Terminal.

Wie öffne ich diese Datei im Terminal?


246
2018-05-01 02:39


Ursprung


Zielt dieses Skript darauf ab, env-Variablen für die weitere Verwendung einzurichten? - Rob
Sie sollten keine Erweiterungen für Skripts verwenden. Zu einem späteren Zeitpunkt werden Sie vielleicht feststellen, dass eine andere Sprache besser geeignet ist, um die Aufgabe Ihres aktuellen Skripts zu erledigen. Und dann hast du ein Problem. Behalten Sie den alten Namen mit einer völlig irreführenden Erweiterung bei, oder benennen Sie ihn um und müssen möglicherweise viele Stellen bearbeiten, an denen Ihr Skript verwendet wird? - geirha
Sie benötigen die Dateierweiterung nicht. Es ist schön zu haben, wird aber nicht benötigt. Das Betriebssystem schaut nicht auf die Dateierweiterung. Es schaut auf die Daten - ActionParsnip
Meh, wenn du foo.sh in Ruby umschreibst, kannst du immer die .sh-Datei zum Starten verwenden ruby foo.rb - glenn jackman
In Dolphin können Sie F4 drücken und eine Konsole öffnet sich - Motte001


Antworten:


Gib deinem Skript die Ausführungsberechtigung:

chmod +x /path/to/yourscript.sh

Und um dein Skript zu starten:

/path/to/yourscript.sh

Schon seit . verweist auf das aktuelle Verzeichnis: if yourscript.sh Ist im aktuellen Verzeichnis, können Sie dies vereinfachen:

./yourscript.sh

377
2018-05-01 03:18



+1 nur antworten, um das Hinzufügen von Ausführungsberechtigungen nur auf terminale Weise anzuzeigen. - Hailwood
Wenn Sie tun bash /path/to/yourscript.sh dann brauchst du nicht chmod +x - Aleksandr Levchuk
Eigentlich können Sie verwenden . /path/to/yourscript.sh wenn das Skript einige Umgebungsvariablen einrichten muss. - Rob
Niemand erwähnt das Traditionelle: ./path/to/yourscript.sh (ohne den Raum danach .) Ich finde, dass man am einfachsten und am einfachsten zu bedienen ist ... Aber trotzdem, hier ist meine Alternative, die fast dasselbe tun sollte wie ./ würde, obwohl ich nicht sehe, warum Sie nicht verwenden würden ./: (FILENAME=~/rem4space.sh;SLL=$(cat $FILENAME|head -1|sed 's:^#!\(.*\):\1:g');[ ! -z $SLL ] && exec $SLL $FILENAME;sh $FILENAME) ... bearbeiten FILENAME nach Ihren Wünschen. Beachten Sie auch das sh wird verwendet, wenn es keine Alternative gibt. - MiJyn


Sie müssen Shell-Skripts als ausführbar markieren, um sie vom Dateimanager aus auszuführen:

  1. Rechtsklick auf dein .sh Datei und wählen Sie Eigenschaften:

    enter image description here

  2. In dem Berechtigungen Registerkarte, überprüfen Erlaube das Ausführen der Datei als Programm:

    enter image description here

  3. Schließe Eigenschaften Fenster und doppelklicken Sie auf die Datei. Ein Dialogfeld wird geöffnet, in dem Sie das Skript in einem Terminal ausführen können:

    enter image description here


72
2018-05-01 03:02



Gut mit Screenshots - gd1
Dies funktioniert nicht in Ubuntu 13.04. Hält sich sowieso in gedit auf, fordert mich nie zur Ausführung auf. Edit: Nvm, imjustmatthew beantwortet das. - mpen
Bevor wir dies verwenden, müssen wir die Dateiberechtigung für die Ausführung mit chmod machen. chmod + x dateiname.sh oder chmod 755 dateiname.sh - Arvind Rawat
Ich habe kein Popup! IDE ist sofort geöffnet, kein Popup - Green
@ DanielMöller, hier ist die Antwort auf Ihre Frage. askubuntu.com/questions/38661/how-do-irun-sh-files/... - Akhilesh Dhar Dubey


Voraussetzung

Bevor Sie die .sh-Datei ausführen können, müssen Sie sie ausführbar machen:

  1. Klicken Sie mit der rechten Maustaste auf die Datei
  2. Wählen Eigenschaften
  3. Wählen Berechtigungen
  4. Wählen Erlaube das Ausführen der Datei als Programm

Warnung

Stellen Sie sicher, dass Sie der Quelle vertrauen, von der Sie die Datei erhalten haben. Es könnte sein Virus.

Der sehr einfache Weg

  1. Doppelklicken Sie auf die Datei
  2. Klicken Sie auf im Terminal ausführen

Das hat ein Problem. Das Terminal wird sofort geschlossen und Sie können die Ausgabe nicht sehen.

Der einfache Weg

  1. Anwendungen öffnen -> Zubehör -> Terminal
  2. Ziehen Sie die SH-Datei per Drag & Drop in das Terminal und drücken Sie die Eingabetaste

So wie Profis es tun

  1. Anwendungen öffnen -> Zubehör -> Terminal
  2. Suchen Sie nach der .sh-Datei

    • Benutze die ls und cd Befehle
    • ls listet die Dateien und Ordner in der aktueller Ordner. Probieren Sie es aus: Geben Sie "ls" ein und drücken Sie die Eingabetaste.
    • Sobald Sie den Ordner sehen, in den Sie gehen möchten, fahren Sie fort cdgefolgt von einem Leerzeichen gefolgt von einem Ordnernamen
    • Wenn Sie in einen Ordner, den Sie nicht wollten, laufen cd .. auf eine Ebene gehen oben
  3. Führen Sie die SH-Datei aus

    • Sobald Sie zum Beispiel sehen können script1.sh mit ls Führe das aus:

      ./script.sh

Warum ist das kompliziert?

Das Terminal verfügt über umfangreiche Tools, auf die Sie zugreifen können, indem Sie die Befehle eingeben. Fachleute suchen die .sh-Datei durch Eingabe von ls und cd. Sobald Sie in der richtigen sind aktueller Ordner Sie können das Skript wie folgt ausführen:

./script1.sh

oder Sie können die Ausgabe in eine Datei ausführen und umleiten:

./script1.sh > out.txt

oder Sie können die Ausgabe nach Schlüsselwörtern filtern (z. B. "Äpfel") und dann in eine Datei umleiten:

./script1.sh | grep apples > ./only-apples

Es gibt Tausende von Dingen, die Sie in diese Datei tun können, indem Sie einfach ein paar Befehle eingeben.

Ein anderer, Sie können eine Datei aus dem Internet mit einem einfachen Befehl herunterladen:

wget www.google.com/images/logos/ps_logo2.png

Und dann öffne die Datei so:

shotwell ps_logo2.png

22
2018-05-01 02:52



Ich bin mir nicht sicher So wie Profis es tun ist richtig, es ist mehr ein Fall von der einfacher Weg das fortgeschritten (für die Kontrolle der Ausgabe) Weg - Hailwood


Öffnen Sie ein Terminal und navigieren Sie zu dem Ordner, in dem der .sh Datei befindet sich. Dann tippe:

sh <name of file>.sh

18
2017-12-20 07:43





Unter Ubuntu 13.04 werden in Nautilus geöffnete ausführbare Dateien jetzt standardmäßig in gedit geöffnet, anstatt den Benutzer aufzufordern, sie auszuführen. Um das klassische Verhalten zu aktivieren, müssen Sie die Einstellungen anpassen:

Nautilus → Menü Bearbeiten → Einstellungen → Registerkarte Verhalten → Klicken Sie bei jeder Abfrage auf das Optionsfeld.


15
2018-06-10 21:41



Die Person, die die Frage gestellt hat, spricht über Ubuntu 10.10 - edwin
Vielen Dank!!! Ich weiß nicht, warum sie das ändern würden, ich konnte nicht herausfinden, wie ich irgendetwas ausführen sollte. - mpen
Dies ist die richtige Antwort für das neueste ubuntus. - gaRex
Wie kommst du nach Nautilus in 15.10? - Yaakov Ainspan


Gehe in das Verzeichnis, in dem der .sh Datei wird verwendet cd. In diesem Beispiel habe ich meine gespeichert sh Datei als ~/Desktop/shell_practice/test.sh

zuerst tun pwd um herauszufinden, wo Sie sind und ob es zurückkommt /home/username (woher username ist dein echter Benutzername), kannst du laufen

cd Desktop/shell/practice

Wenn Sie woanders zu sein scheinen, können Sie den absoluten Pfad verwenden

cd ~/Desktop/shell/practice

oder

cd $HOME/Desktop/shell/practice

oder auch

cd /home/$USER/Desktop/shell/practice

Dies sind alle Möglichkeiten, denselben Ort zu beschreiben. Sobald Sie den Speicherort Ihres Skripts erreicht haben, geben Sie ein

ls

Wenn Sie das sehen können sh Datei in der Ausgabe, die Sie verwenden können chmod um es ausführbar zu machen. In meinem Fall, erinnere dich, der Dateiname ist test.shAlso würde ich rennen

chmod u+x test.sh

Jetzt, wo wir im selben Verzeichnis wie das Skript sind, müssen wir der Shell mitteilen, dass wir die Datei ausführen wollen, indem wir ihren Speicherort angeben ./ (Das aktuelle Verzeichnis gefolgt von einem Pfadtrennzeichen, um es vom Dateinamen zu unterscheiden). Um meine Datei zu starten, würde ich Folgendes eingeben:

./test.sh

Wenn Ihr Skript korrekt geschrieben wurde, wird es ohne Fehler ausgeführt ...

Hier ist ein Live-Beispiel: Here is live example


5
2017-12-03 11:14



Das hat mir geholfen, Netbeans auf ubuntu zu installieren - RuD3B0y
Wb, @ RuD3B0y, Ich habe versucht, die Antworten für Noobs am besten zu halten, keine High-Tech-Inhalte, wenn Sie einige Änderungen haben, sind Sie willkommen. - TheExorcist


2 Hauptschritte.

  1. Verwenden Sie im Terminal gedit, um ein Skript mit der Erweiterung ".sh" auf dem Desktop zu schreiben und zu speichern. (aber jeder Texteditor kann verwendet werden)

  2. Öffnen Sie Nautilus und klicken Sie mit der rechten Maustaste auf die Datei script.sh.

    • Aktivieren Sie unter Eigenschaften das Kontrollkästchen "Ausführen der Datei zulassen".

    • Im Menü Nautilus klicken Sie auf Datei, dann auf Einstellungen und dann auf Verhalten

    • Überprüfen Sie die "ausführbaren Textdateien ausführen, wenn sie geöffnet sind".

Wenn Sie nun auf die Datei auf dem Desktop doppelklicken, sollte sie ausgeführt werden. kein Bedarf für . oder ./


3
2017-10-24 14:24





In Ubuntu 16.04 ist das wie man es im Terminal öffnet:

Gehe zum File Manager > Edit > Preferences > Behavior zum Executable Text Files und wählen Sie Ask each time.

Das Problem ist, dass es standardmäßig auf eingestellt ist View Executable Files when they are opened.


2
2017-12-11 19:58





  1. Klicken Sie mit der rechten Maustaste auf .sh Datei und mach es ausführbar.

  2. Öffnen Sie ein Terminal (Strg+Alt+T).

  3. Zieh den .sh file in das Terminalfenster und beobachte in Ehrfurcht.


2
2018-06-10 14:09



Willkommen bei Ask Ubuntu! Ich empfehle es bearbeiten diese Antwort, um es mit spezifischen Details über den ersten Schritt zu erweitern. (Siehe auch Wie schreibe ich eine gute Antwort? für allgemeine Ratschläge, welche Art von Antworten auf AskUbuntu als besonders wertvoll angesehen werden.) - David Foerster


Es gibt ein paar Möglichkeiten, dies zu tun.

Option 1

  1. Greifen Sie im Terminal auf das Verzeichnis zu, in dem sich die Bash-Datei befindet cd (ändere die Richtung).

    Ex. cd Downloads

  2. Lauf bash <filename>.sh

    Dies funktioniert auch mit .run-Dateien. Es gibt ein Beispiel für diese Verwendung auf dieser Webseite zum Aktualisieren von Rhythmbox.

Option 2

  1. Navigieren Sie im Terminal zu dem Verzeichnis, in dem sich die Bash-Datei befindet.

  2. Lauf chmod +x <filename>.sh

  3. Öffnen Sie in Nautilus die Datei.


2
2018-01-06 21:33