script mit script erstellen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von dosenfleisch, 17.01.2008.

  1. #1 dosenfleisch, 17.01.2008
    dosenfleisch

    dosenfleisch Foren As

    Dabei seit:
    29.03.2007
    Beiträge:
    75
    Zustimmungen:
    0
    hallo,

    ich schreibe gerade ein bash script, das unter anderem ein neues script erstellt und ausführbar macht.

    nun werden aber bei der erstellung die befehle für script 2 bereits in script 1 ausgeführt und das ergebnis in script 2 geschrieben.

    Wie "neutralisiere" ich die befehle, sodaß sie im script 2 aber abgearbeitet werden können?

    zur verständlichkeit hier ein beispiel:

    Code:
    echo -e "#!/bin/bash\nwhile :  ; do\nuser=$(whoami)\necho "$whoami"\nsleep 1\ndone\" > ~/.kde/Autostart/echo.sh
    
     
  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. L0s3r

    L0s3r Tripel-As

    Dabei seit:
    22.09.2007
    Beiträge:
    216
    Zustimmungen:
    0
    Ort:
    MV
    Ersetz mal beim echo die " durch ' dann sollte das klappen ;)

    Code:
    echo -e '#!/bin/bash\nwhile :  ; do\nuser=$(whoami)\necho "$whoami"\nsleep 1\ndone\'
     
  4. tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    Bitte formatiere das doch etwas leslicher..
    Code:
    echo -e "
    #!/bin/bash\n
    while :  ; do\n
      user=$(whoami)\n
      echo "$whoami"\n
      sleep 1\n
    done\" > ~/.kde/Autostart/echo.sh
    
    Jetzt siehst du vielleicht auch das Problem: du hast Gänsefüsschen drin und nicht escaped. Zudem verstehe ich nicht ganz, was das Script bezwecken soll, dass es dynamisch erstellt werden muss?

    Alternativ machst du eine "template-script" Datei, in welcher du mit sed notwendige Konstanten / Variablen ersetzt.
     
  5. #4 dosenfleisch, 17.01.2008
    dosenfleisch

    dosenfleisch Foren As

    Dabei seit:
    29.03.2007
    Beiträge:
    75
    Zustimmungen:
    0
    @LOs3r
    dankesehr, das war's!

    @trOnix
    das script hier war nur ein beispiel.
    daß das ganze extrem unleserlich ist, sah ich auch, mir war nur nicht bewußt, daß ich es nicht in eine zeile schreiben muß.

    danke!
     
  6. tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    Kein Problem, wie gesagt, normalerweise erstellt man ja Scripts, weil irgendwelche Daten darin geändert werden müssen. Wenn du jedoch einzelne Teile in einem Script geändert haben möchtest, schreibst du das Script besser so, dass es sich durch eine Konfigurationsdatei editieren lässt.

    Ganz primitiv geht das, indem du eine Datei "sourcest". Beispielsweise kannst du in eine Datei - sagen wir test_config folgendes schreiben:
    Code:
    NAME=tr0nix
    ... anschliessend kannst du diese Sourcen:
    Code:
    . test_config
    ... und kannst nun $NAME zugreifen:
    Code:
    echo $NAME
    Es ist nun natürlich einfacher, eine Datei im Styl von "wert=value" zu erstellen, als ganzen Code.

    Gruess
    Joel
     
  7. #6 dosenfleisch, 17.01.2008
    dosenfleisch

    dosenfleisch Foren As

    Dabei seit:
    29.03.2007
    Beiträge:
    75
    Zustimmungen:
    0
    @tr0nix
    kannst du mir das bitte noch einmal erklären. es scheint, es wäre was neues für mich und ich würde es gern verstehen.
    leider hast du in zwei deiner sätze kein verb, sodaß ich nicht weiß, was es mit der datei sourcest auf sich hat und was ich anschließend mit "diesen sourcen" tun soll.

    ich erstelle eine datei, die werte nach dem muster wert=000 beinhaltet. wie greife ich da nun in deinem beispiel darauf zu? und bekomme es dann in die variable $wert?
    ich hätte das wahrscheinlich mit cat und einer while-schleife gemacht.

    dazu muß ich aber noch klärend sagen, daß ich ein statisches neues script generieren wollte, daß es so vorher noch nicht gab und auch später nicht mehr verändert werden soll.
    aber bitte erkläre dennoch dein beispiel noch einmal.
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. #7 Wolfgang, 17.01.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Der Punkt ist das Gleiche wie der Befehl source.
    Das inportiert eine Datei in den Namspace der aktuellen Shell.
    Wenn du darin in gültiger Syntax Variablen oder Funktionen definierst, werden diese in die aktuelle Shell importiert.
    Bestehende werden damit überschrieben. (Es sei denn sie sind read only).

    Du kannst in der bash sogar das laufende Script verändern, oder erweitern.
    Dazu mal diesen kleinen Spaß:
    Code:
    #!/bin/bash
    anz=5;
    echo "Ich bin das Orginal"
    for (( i=$anz;$i > 1 ; ((i--)) ));do
    echo 'for (( i=$anz;$i > 1 ; ((i--)) ));do \
    echo "Ich bin nicht das Orginal!";\
    done';
    done >> $0
    echo Ende Orginal;
    
    Probier es aus.
    ;)
    Gruß Wolfgang
     
  10. #8 dosenfleisch, 18.01.2008
    Zuletzt bearbeitet: 19.01.2008
    dosenfleisch

    dosenfleisch Foren As

    Dabei seit:
    29.03.2007
    Beiträge:
    75
    Zustimmungen:
    0
    das ist ja eine feine sache. kannte ich gar nicht.
    somit hat tr0nix auch keine probleme mit dem satzbau ;)
    jetzt verstehe ich seinen post erst richtig.
     
Thema:

script mit script erstellen

Die Seite wird geladen...

script mit script erstellen - Ähnliche Themen

  1. 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....
  2. Bashscript aus Debian6 läuft nicht auf Debian7

    Bashscript aus Debian6 läuft nicht auf Debian7: Hallo an alle, nachdem ich ein Skript von squeeze auf wheezy kopiert habe und ausführte, erschienen gleich wilde Fehlermeldungen, nach denen ich...
  3. Shell Script Problem

    Shell Script Problem: Hallo zusammen, ich arbeite momentan mit einem Plagiat Tool, die ich über Git Bash ausführe. Es wird im Endeffekt ein Link generiert, die ich...
  4. Externes Programm mit Script ausführen?

    Externes Programm mit Script ausführen?: Hallo, ich würde gern ein Script zum klonen von festplatten schreiben z.B. mit dem Programm Mondo Rescue. Ist es möglich externen Programmen...
  5. sh Script zum Autostart

    sh Script zum Autostart: hallo liebe Mitglieder, wenn ich unter Linux eins meiner Shell Skripte im Autostart haben will nutze ich immer die @reboot Funktion im crontab....