wie schreibt man ein shell-script bei linux?

...komplette Frage anzeigen

2 Antworten

Also für das, was du da schreibst, benötigt man nicht mal ein Shellscript, da ein einfacher Einzeiler auf der Kommandozeile reicht.

Ich weiß allerdings nicht, in welcher Form deine Daten vorliegen. Evtl. musst du die vorher mit grep oder sogar awt aufbereiten.

Würden deine Daten als CSV vorliegen, könntest du bei diesen Beispiel-Daten:

"Alpha",123
"Beta",789
"Gamma",456
"Delta",000

... Folgendes versuchen:

sort -t, -k2 -n data.txt > sorted.txt

Die Daten wären dann nach der Nummern-Spalte sortiert und in "sorted.txt" gespeichert.

Das ganze kannst du dann in einer Datei, mit dem namen "sortieren.sh" auch als Skript speichern:

#!/bin/bash

sort -t, -k2 -n data.txt > sorted.txt

Dann musst du diese Datei natürlich noch ausführbar machen, indem du auf der Konsole das hier eingibst:

chmod +x sortieren.sh

Und dann kannst du dein Skript einfach so hier ausführen:

./sortieren.sh

Beachte den Punkt und das Slash am Anfang!

Also wie du siehst, kannst du Shellskripte leicht mit diesen drei Schritten erstellen und ausführen.

Es sei noch erwähnt, dass unter Linux Dateiendungen (fast) keine Rolle spielen, und die Dateiendung *.sh für Shellskripte ist nicht zwingend. Aber es hilft dem Editor das Syntaxhighlighting anzupassen, und für Menschen ist es auch leichter nachvollziehbar, wenn man auf den ersten Blick sieht: "Aha, diese Datei ist ein Skript".

Alternativ könntest du dein Skript auch nur "sortieren" nennen, also völlig ohne Endung. Das ist bei vielen Systemkommandos der Fall, die in /bin, /usr/bin oder /sbin liegen!

Wenn du wissen willst, um welchen Dateityp es sich - unabhängig von der Dateiendung - handelt, kannst du folgendes eingeben:

file sortieren.sh

Das wird dir immer das selbe Ergebnis liefern, egel welche Dateiendung du deinem Skript gibst. Aber das ist jetzt schon wieder ein anderes Thema. :)

Auf jeden Fall solltest du sagen, um welche Daten es sich genau handelt, da dir hier sonst niemand optimal weiter helfen kann. Die ersten zwei oder drei Zeilen deines Datensatzes wären ideal ... ein Beispiel sagt mehr als tausend Worte!

Naja, viel Spaß! :)

PS: Guck dir auf JEDEN Fall die grep, awt, sed, tr, sort, uniq, head, tail, cat und iconv Kommandos und vor allem deren Parameter an! Alleine mit dieser Hand voll, kann man gefühlt 99% aller Aufgaben erschlagen, was das Arbeiten mit textuell vorliegenden Datensätzen betrifft.

Informationen zu diesen Kommandos findest du am besten in den Man-Pages, indem du z. B. für "sort" folgenden Befehl eingibst:

man sort

(mit den Pfeiltasten scrollen, mit "q" beenden)

Eine kürzere Schnellübersich erhältst du so:

sort --help

Dabei musst du dann aber evtl. mit dem Mausrad im Terminalfenster hochscrollen.

Viel Spaß! :)

Antwort bewerten Vielen Dank für Deine Bewertung

Hallo

wie schreibt man ein shell-script bei linux?

Man öffnet einen beliebigen Texeditor und schreibt in die erste Zeile das so genannte Shebang:

#/bin/bash

Danach kommt dann das jeweilig gewünschte Kommando:

#/bin/bash
echo "Wie ist Dein Name?:"
read NAME
echo "Hallo $NAME"

In diesem Beispiel wird folgendes getan:

  1. Der auszuführende Interpreter bestimmt, hier die bash
  2. Eine Abfrage an den User gestellt der das Script startet
  3. Die Eingabe des Benutzers wird entgegengenommen und in die Variable $NAME abgelegt.
  4. Am Ende wird der Benutzer mit einem Hallo und seiner Eingabe begrüßt.

ich will bei Linux ein Shell Script schreiben, mit Aufruffunktion von Daten (Nummern)

  • A) Woher kommen denn die Daten (Nummern)
  • B) Wo sollen die Dinge ausgegeben werden (Bildschirm, Drucker ect.)
  • C) Welchen Zweck soll das Ganze erfüllen?

Diese Nummern sollen sortiert werden.

Da hilf das Programm sort

man sort

Linuxhase

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?