Robert_Zenz
Anmeldungsdatum: 5. August 2006
Beiträge: 239
|
Ich habe den Fall dass ich gerne mehrere Kommandos ausfuehren will welche immer die gleichen sind, und zwar etwas komfortabler als "nur" ein Skript. Ein vereinfachtes Beispiel waere so etwas: 1
2
3
4
5
6
7
8
9
10
11
12 | rm -rf $HOME/.cache/bla/*
rm -rf $HOME/.cache/bla2/*
$HOME/directory/some-script.sh
rsync /local/directory remote:/somewhere
rsync /another/local/directory remote:/elsewhere
rsync remote:/yet/another/location /local/more/locations
someothercommand
someothercommand2
|
Also eigentlich will ich ein Skript, aber halt ein Skript in welchem ich sowohl auf einen Blick sehe welche Kommandos funktioniert haben und welche nicht, als auch mir optional die Ausgabe anschauen kann von allen Kommandos. Ich habe mir vor Jahren ein Helfer-System gebaut welches das schon fast tut, aber es ist eben ziemlich zusammen geschustert und schluckt auch die Kommando Ausgaben. Das sieht dann in etwa so aus: | task "Name Task #1" command parameters
task "Name Task #2" command parameters
task "Name Task #3" command parameters
|
[ 0] Name Task #1
[255] Name Task #2
[ 2] Name Task #3 Die Ausgabe wird immer auf eine Zeile reduziert und direkt unter dem aktuellen Kommando angezeigt, quasi als laufender Text: [ 0] Name Task #1
[ ] Name Task #2
Currently running step x... Das hat den Vorteil dass ich direkt sehen kann welche Kommandos funktioniert haben, welche nicht und welches gerade ausgefuehrt wird, aber auf der anderen Seite ist die Ausgabe weg und es gibt da noch ein paar andere Probleme mit der Anzeige (das hin und her springen im Terminal zerbricht hier und da, das zeilenweise lesen bedeutet das man teilweise die neueste Ausgabe nicht sieht und noch so ein paar Sachen). Zu einer GUI Loesung wuerde ich jetzt auch nicht unbedingt Nein sagen, man wird ja doch aelter. Eine Idee dir mir letztens kam ist tmux fuer die Anwendung zu missbrauchen, aber ich habe leider keinen guten Ansatz dafuer gefunden. Meine Idee war fuer jedes Kommando eine tmux Pane zu machen und es darin auszufuehren, diese dann aber zu minimieren auf nur die Titelzeile, was aber anscheinend so nicht geht wenn ich die Dokumentation richtig verstanden habe. Jemand eine Idee dazu oder Vorschlaege? Bearbeitet von umbhaki: In besser geeignetes Forum verschoben.
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11176
Wohnort: München
|
Du könntest dir mal Ansible ansehen - wobei das standardmäßig beim ersten fehlgeschlagenen Task abbricht, wenn man nicht explizit vorgibt, dass es den Fehlerfall übergehen soll. Es gibt z.B. auch Ansible Tower, um die Playbooks aus einer GUI heraus auszuführen.
|
Robert_Zenz
(Themenstarter)
Anmeldungsdatum: 5. August 2006
Beiträge: 239
|
Waere eine Idee, wirkt aber etwas uebertrieben fuer meinen Anwendungsfall. Ist aber vielleicht ein guter Ansatz.
|
juribel
Anmeldungsdatum: 20. April 2014
Beiträge: 1078
|
Warum schreibst du nicht einfach alles in eine Office-Datei? Da kannst du alles reinschreiben, auch die Ergebnisse der Programmaufrufe oder Bildschirmfotos, du kannst copypasten, mit Überschriften nach Themen gruppieren, alles was man braucht. Keep it simple, stupid!
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11176
Wohnort: München
|
Lieber in eine Emacs org-mode Datei - da kann man Code-Blöcke bei Bedarf direkt ausführen lassen - Stichwort literate DevOps: https://howardism.org/Technical/Emacs/literate-devops.html
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 28954
Wohnort: WW
|
Hallo, willst / musst du das "live" sehen, also du sitzt bei der Ausführung vor dem Rechner? Oder willst du hinterher / am nächsten Tag / whenever nachschauen? Gruß, noisefloor
|
kB
Supporter, Wikiteam
Anmeldungsdatum: 4. Oktober 2007
Beiträge: 8558
Wohnort: Münster
|
Eine sofort umsetzbare Methode wäre, einfach die Möglichkeiten der ausführenden Shell einzusetzen. Die Bash kennt z.B. die Optionen -e und -x .
|
Robert_Zenz
(Themenstarter)
Anmeldungsdatum: 5. August 2006
Beiträge: 239
|
juribel schrieb: Warum schreibst du nicht einfach alles in eine Office-Datei? Da kannst du alles reinschreiben, auch die Ergebnisse der Programmaufrufe oder Bildschirmfotos, du kannst copypasten, mit Überschriften nach Themen gruppieren, alles was man braucht. Keep it simple, stupid!
Also mir geht es primaer um die Aufrufbarkeit. seahawk1986 schrieb: Lieber in eine Emacs org-mode Datei - da kann man Code-Blöcke bei Bedarf direkt ausführen lassen - Stichwort literate DevOps: https://howardism.org/Technical/Emacs/literate-devops.html
Boah, das muss ich mir genauer ansehen. Das muss erstmal in meinem Kopf ankommen was das alles kann, wirkt beeindruckend. noisefloor schrieb: willst / musst du das "live" sehen, also du sitzt bei der Ausführung vor dem Rechner? Oder willst du hinterher / am nächsten Tag / whenever nachschauen?
Live waere schoen, deswegen die Aufbereitung in schoene Ueberschriften und was funktioniert hat und was nicht. kB schrieb: Eine sofort umsetzbare Methode wäre, einfach die Möglichkeiten der ausführenden Shell einzusetzen. Die Bash kennt z.B. die Optionen -e und -x .
Wie gesagt, ich habe ja ein Shell-Skript welches das grob zusammen schustert, aber es ist halt genau das, grob zusammengeschustert. Nachdem ich nichts gefunden habe zu dem Thema, dachte ich mal ich frage mal ob jemand so ein Programm kennt welches das schoener aufbereitet.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12802
|
kB schrieb: Eine sofort umsetzbare Methode wäre, einfach die Möglichkeiten der ausführenden Shell einzusetzen. Die Bash kennt z.B. die Optionen -e und -x .
Das wäre auch mein Vorschlag. Ein Muster, das ich oft verwende, sieht so aus: | #!/bin/sh
# debug
[ -z "$DEBUG" ] || set -x
# exit on first error
set -e
# eigentlicher Skriptcode
|
Dann kann man die Debug-Ausgabe, die alle Befehle und Argumente zeigt, über die Umgebungsvariable DEBUG einschalten: Normal Debug | $ DEBUG=x script arg1 arg2
|
oder so | $ export DEBUG=f
$ script arg1 arg2
|
Das schöne ist, dass sich die Debug-Ausgabe "vererbt", wenn das Skript weitere Skripte aufruft.
|
shiro
Anmeldungsdatum: 20. Juli 2020
Beiträge: 917
|
Leider muss ich gestehen, deine wirkliche Anforderung nicht vollständig verstanden zu haben. Allerdings hat deine Reaktion bezüglich des Hinweises auf "literate-DevOps" mit Emacs mich vermuten lassen, dass es für dich auch interessant sein könnte, sich "cherrytree" mal anzuschauen. Hier kannst du deine Elemente (Kommandos) auch hierarchisch gruppieren, Informationen (rich-text, Bilder, Einbettungen, Links usw) beifügen und über "CodeBoxes" die ausführbaren Befehle (z.B. bash) einbetten und mit der F5 Taste ausführen (in internen oder externen Terminal). Ergebnisausgaben lassen sich dann ebenfalls in Codeblocks oder Tabellen (für Kommentare) eintragen. Dieser "cherrytree" Ansatz kombiniert Ideen von "Mindmap", "Office" und "Entwicklung" mit "Hierarchischer Dokumentation". Alles, was du an bash-Tools hast, kannst du da natürlich auch verwenden.
|
Robert_Zenz
(Themenstarter)
Anmeldungsdatum: 5. August 2006
Beiträge: 239
|
shiro schrieb: Leider muss ich gestehen, deine wirkliche Anforderung nicht vollständig verstanden zu haben.
Ja, habe ich vielleicht auch nicht gut genug erklaert. Im Moment habe ich alle Befehle in einem Skript, aber ich suche eben nach einer Moeglichkeit um einen Stapel Befehle auszufuehren und dann das Ergebnis uebersichtlich praesentiert zu bekommen. Wobei "uebersichtlich" hier sehr loese definiert ist, weil ich eigentlich nicht weisz was genau ich will. shiro schrieb: Allerdings hat deine Reaktion bezüglich des Hinweises auf "literate-DevOps" mit Emacs mich vermuten lassen, dass es für dich auch interessant sein könnte, sich "cherrytree" mal anzuschauen. Hier kannst du deine Elemente (Kommandos) auch hierarchisch gruppieren, Informationen (rich-text, Bilder, Einbettungen, Links usw) beifügen und über "CodeBoxes" die ausführbaren Befehle (z.B. bash) einbetten und mit der F5 Taste ausführen (in internen oder externen Terminal). Ergebnisausgaben lassen sich dann ebenfalls in Codeblocks oder Tabellen (für Kommentare) eintragen.
Das sind wirklich coole Sachen! Nicht ganz was ich gesucht habe, weil ich weniger die Dokumentation brauche und dafuer das Stapel-Ausfuehren.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12802
|
Robert_Zenz schrieb:
Ja, habe ich vielleicht auch nicht gut genug erklaert. Im Moment habe ich alle Befehle in einem Skript, aber ich suche eben nach einer Moeglichkeit um einen Stapel Befehle auszufuehren und dann das Ergebnis uebersichtlich praesentiert zu bekommen. Wobei "uebersichtlich" hier sehr loese definiert ist, weil ich eigentlich nicht weisz was genau ich will.
Was ist denn das Ergebnis? Ich meine, es gibt ja keine allgemeingültige übersichtliche Darstellung für beliebige Daten. Was übersichtlich ist und wie man das herstellt, hängt ja entscheidend von der Ausgabe ab.
|
Robert_Zenz
(Themenstarter)
Anmeldungsdatum: 5. August 2006
Beiträge: 239
|
rklm schrieb: Was ist denn das Ergebnis? Ich meine, es gibt ja keine allgemeingültige übersichtliche Darstellung für beliebige Daten. Was übersichtlich ist und wie man das herstellt, hängt ja entscheidend von der Ausgabe ab.
Ja, ich hatte mir eine Art Anzeige vorgestellt welche die Befehle auflistet, vielleicht mit schoenen Titeln, dann das Ergebnis (also Exit Code) und mir dann noch die Moeglichkeit gibt nach belieben die Ausgabe zu betrachten.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12802
|
Robert_Zenz schrieb:
Ja, ich hatte mir eine Art Anzeige vorgestellt welche die Befehle auflistet, vielleicht mit schoenen Titeln, dann das Ergebnis (also Exit Code) und mir dann noch die Moeglichkeit gibt nach belieben die Ausgabe zu betrachten.
Merci! Das klingt für mich, als ob Du eine grafische Anwendung suchst, die
Das klingt recht aufwändig für mich. Abgesehen davon, wüsste ich nicht, wie man die Anforderung einzelne Rückgabewerte und Ausgaben zu bekommen damit überein bringt, ein Skript auszuführen. Denn so ein Skript ist ja üblicherweise keine einfache Liste von Befehlen mit Argumenten, sondern enthält Ablaufsteuerung (if , while usw.) und anderes, das über mehrere Zeilen wirkt (Variablezuweisung und -zugriff). Da bräuchte man eine spezielle Shell. Vielleicht gibt es so etwas, aber ich kenne es nicht. Ich weiß nicht, wofür das letztlich gebraucht wird, deshalb kann ich da jetzt auch keine Alternative vorschlagen (außer Emacs vielleicht - der kann ja alles 😉).
|
Robert_Zenz
(Themenstarter)
Anmeldungsdatum: 5. August 2006
Beiträge: 239
|
rklm schrieb: Merci! Das klingt für mich, als ob Du eine grafische Anwendung suchst, die
Genau, fast, kein Skript sondern eben eine Liste an Befehlen. Dachte mir, vielleicht kennt jemand sowas schon.rklm schrieb: rklm schrieb: Ich weiß nicht, wofür das letztlich gebraucht wird, deshalb kann ich da jetzt auch keine Alternative vorschlagen (außer Emacs vielleicht - der kann ja alles 😉).
Als Ersatz von recht einfachen Bash-Skripten (Dinge von A nach B kopieren, Dateien umbennen, Ordner aufraeumen und so weiter).
|