Hilfe bei Shell-Scripting

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von maze-m, 29.09.2012.

  1. maze-m

    maze-m Grünschnabel

    Dabei seit:
    29.09.2012
    Beiträge:
    5
    Zustimmungen:
    0
    Moinsen!

    Ich soll für ein Labor im Studium folgende Skripte schreiben und bräuchte da etwas Unterstützung!

    1. frename.sh <string>
    Hängt für alle Dateien im aktuellen Verzeichnis die Zeichenkette string an den aktuellen Dateinamen an (Umbenennung).

    2. try_host.sh [-h|-s <sec>] <hostname>|<IP-Address>
    Der in der Befehlszeile angegebene Rechner (Hostname oder IP-Adresse) soll auf Erreichbar-keit hin überwacht werden. Dazu sendet das Skript in regelmäßigen Zeitabständen ein "ping"
    an den angegebenen Rechner (nur ein ping Paket) und wertet den return value aus (siehe
    man ping). War der ping Befehl erfolgreich, wird der Rechnername mit einem OK- Vermerk
    ausgegeben, andernfalls wird er mit einem FAILED-Vermerk ausgegeben.
    Das Skript unterstützt folgende Optionen (es darf aber nur eine Option gleichzeitig angege-ben werden):
    -h : Nur Ausgabe der „Usage Message“
    -s <sec> : Der ping wird zyklisch alle <sec> Sekunden ausgeführt.
    Fehlt die –s Option, wird der ping alle 10 Sekunden ausgeführt.
    Beispiel: Der Aufruf
    bash try_host.sh -s 5 google.de
    erzeugt alle 5 Sekunden eine Ausgabe der Art:
    google.de OK
    falls der Host google.de erreichbar ist, anderenfalls
    google.de FAILED

    c) Ändern Sie den Status jedes Skripts auf „ausführbar“ und starten sie beide Skripte jeweils
    als Programm (ohne bash-Aufruf, aber mit Angabe des aktuellen Verzeichnisses, z.B. durch
    Voranstellen von ./ )

    d) Erweitern Sie den Inhalt der Umgebungsvariablen PATH so, dass immer das momentan
    aktuelle Verzeichnis enthalten ist.


    Kann mir jemand von euch ein paar Gedankenansätze geben, wie ich die Aufgaben lösen kann?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 bitmuncher, 29.09.2012
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Zu 1.) Verzeichnis einlesen, alles was nicht '.' oder '..' heisst entsprechend mit 'mv' oder 'rename' umbenennen und fertig.
    Zu 2.) Schau dir mal das check_host-Skript von Nagios an. Das dürfte entsprechendes bereits tun und muss nur modifiziert werden.
    zu c.) Siehe Manpage zu chmod - man chmod.
    zu d.) export PATH=.:$PATH
     
  4. #3 maze-m, 29.09.2012
    Zuletzt bearbeitet: 29.09.2012
    maze-m

    maze-m Grünschnabel

    Dabei seit:
    29.09.2012
    Beiträge:
    5
    Zustimmungen:
    0
    Okay, das Einlesen kann ich ja mit "ls" machen.... Aber ich muss die Verzeichnisnamen ja auch irgendwo speichern, um an diese danach den String dranhängen zu können, oder?

    Hab das jetzt eben so versucht:
    "ls -la | grep -d skip . .. | mv *.* $string"

    Aber ich muss ihm ja auch irgendwo erstmal nen String übergeben, welchen er an ne Datei anhängen kann, oder? Wie lese ich den denn ein und speicher diesen später?

    Dazu sei vielleicht zu sagen, dass der Dozent uns ein Beispielskript gegeben hat:

    Code:
    #!/bin/bash 
    # <Description of this shell script>
    # <Your name> 
    # <Date>
    
    # ------------------------------------------------------------
    # This function shows the help text for this bash script
    usage() { 
       echo "
    	$0 [OPTIONS] [<user name>]
    	Ask the user for her or his name and display a greeting 
    	OPTIONS: 
    	   -h: Display this help
    	"
    }
    
    # This function asks the user for his name
    ask_for_name() {
        echo "Please enter your name:" 
        read user_name
    }
    
    # ---------------------- main --------------------------------
    # check parameters 
    if [ $# -gt 1 ]; then
        usage
        exit 1
    fi
    
    case $1 in
        "-h")
            usage
            exit 0
            ;;
        "")
            ask_for_name
            ;;
        *)
            user_name=$1
    esac
    
    # print greetings
    echo "
    ####################
     Hello $user_name,
     nice to meet you! 
    ####################
    "
    exit 0
    
    # ---------------------- end ---------------------------------
     
  5. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.056
    Zustimmungen:
    8
    (1) Welches OS?
    (2) Welche Shell?

    ansonsten - schau Dir mal
    Code:
    man rename
    an...
     
  6. maze-m

    maze-m Grünschnabel

    Dabei seit:
    29.09.2012
    Beiträge:
    5
    Zustimmungen:
    0

    zu (1): Haben mir Linux Mint in ner VM installiert!

    zu (2): Ist ein Shell-Skript für die bash!

    Aber damit kann man doch eigentlich nur Files umbenennen und nicht ganze Verzeichnisse, oder?
     
  7. #6 marce, 29.09.2012
    Zuletzt bearbeitet: 29.09.2012
    marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.056
    Zustimmungen:
    8
    was lt.
    genau auf Deine Anforderungen passen würde.
     
  8. maze-m

    maze-m Grünschnabel

    Dabei seit:
    29.09.2012
    Beiträge:
    5
    Zustimmungen:
    0
    Ja, stimmt :)! Aber wie sag ich dann denn meinem Skript, dass es den alten Dateinamen "speichern" soll und daran nur den "String" anhängen soll. Zudem muss ich ja diesen auch irgendwie abfragen, wo ich auch noch nicht so wirklich weiß, wie ich das machen soll!
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.056
    Zustimmungen:
    8
    wozu brauchst Du das denn? Du hast die man-Page zu rename wohl noch nicht gelesen, oder?
     
  11. maze-m

    maze-m Grünschnabel

    Dabei seit:
    29.09.2012
    Beiträge:
    5
    Zustimmungen:
    0
    Okay, ich gebe zu, dass ich die man-Page noch nicht gelesen habe! Dann werd ich da gleich mal reingucken! Danke sonst erstmal!
     
Thema:

Hilfe bei Shell-Scripting

Die Seite wird geladen...

Hilfe bei Shell-Scripting - Ähnliche Themen

  1. Hilfe.

    Hilfe.: Hallo ich habe centos 7.2.15.11 Ich habe die .rpm Dateien von Epson direkt installiert, aber sonst nichts. Nachdem ich im Terminal...
  2. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  3. [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

    [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter: Hallo zusammen, ich bin an einem Punkt angekommen, wo ich nicht mehr weiter komme und hoffe ihr könnt mir weiter helfen. Anbei ein Ausschnitt aus...
  4. Benötige Hilfe- Dateien vergleichen

    Benötige Hilfe- Dateien vergleichen: Hallo, für eine Arbeit an der Uni muss ich einige viele Bilder miteinander vergleichen, was ich gerne durch eine Automatisierung etwas...
  5. Anfänger braucht Hilfe bei DVB-S Installation

    Anfänger braucht Hilfe bei DVB-S Installation: Hallo, ich habe ein Problem. Ich habe openSuse 13.2 frisch installiert. Jetzt soll ein usb-TV-Modul TEVII s660 funktionieren. Ich kann bereits...