scripten einer "shell" die keine Scripte kann
- RobertS
- Beiträge: 516
- Registriert: 15.04.2012 13:50:53
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Rastatt BaWü
scripten einer "shell" die keine Scripte kann
Ich hätte da gerne folgendes Problem:
ich habe hier eine Hardware die sich vom Rechenknecht aus nur sehr bedingt steuern läßt.
Jetzt gibt es ein Programm bei Debian das diese Hardware anspricht.
Dieses Programm läßt sich mit dem Parameter --shell aufrufen und bietet dann eine Eingabezeile über die sich einiges treiben läßt.
Ich möchte jetzt aber 50 mal das gleiche Kommando in dieser "shell" ausführen, ohne mir die Finger wund zu tippen.
Eine Möglichkeit ein script auszuführen bietet mir diese "shell" leider nicht.
Nach langem Suchen bin ich auf das Paket empty-expect gestoßen.
Eigentlich sollte sich damit mein Vorhaben umsetzen lassen, ich bekomme es aber noch nicht hin.
Weiterführende Doku, abgesehen von der ManPage, leider Fehlanzeige.
Eine Google Suche nach "empty" bringt unendliche Treffer ohne Bezug zu meinem Problem. Das empty leer bedeutet weiß ich auch so, aber irgendetwas mit Bezug zu dem Programm empty war noch nicht dabei.
Mir wäre schon mit kommentierten Scriptbeispielen weitergeholfen.
Grüße
Robert
ich habe hier eine Hardware die sich vom Rechenknecht aus nur sehr bedingt steuern läßt.
Jetzt gibt es ein Programm bei Debian das diese Hardware anspricht.
Dieses Programm läßt sich mit dem Parameter --shell aufrufen und bietet dann eine Eingabezeile über die sich einiges treiben läßt.
Ich möchte jetzt aber 50 mal das gleiche Kommando in dieser "shell" ausführen, ohne mir die Finger wund zu tippen.
Eine Möglichkeit ein script auszuführen bietet mir diese "shell" leider nicht.
Nach langem Suchen bin ich auf das Paket empty-expect gestoßen.
Eigentlich sollte sich damit mein Vorhaben umsetzen lassen, ich bekomme es aber noch nicht hin.
Weiterführende Doku, abgesehen von der ManPage, leider Fehlanzeige.
Eine Google Suche nach "empty" bringt unendliche Treffer ohne Bezug zu meinem Problem. Das empty leer bedeutet weiß ich auch so, aber irgendetwas mit Bezug zu dem Programm empty war noch nicht dabei.
Mir wäre schon mit kommentierten Scriptbeispielen weitergeholfen.
Grüße
Robert
Re: scripten einer "shell" die keine Scripte kann
Die Hardware und das Programm dazu sind geheim? Weil wenn nicht, könntest du’s mal nennen – dann könnte man mal schauen, worum es geht und was man damit machen kann.
- RobertS
- Beiträge: 516
- Registriert: 15.04.2012 13:50:53
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Rastatt BaWü
Re: scripten einer "shell" die keine Scripte kann
Hardware und Programm sind nicht geheim, in keinster Weise.
Canon EOS 5DsR und gphoto2, Ziel ist eine Focusreihe.
Mir geht es aber auch um das Verstehen von Empty.
Grüße
Robert
Canon EOS 5DsR und gphoto2, Ziel ist eine Focusreihe.
Mir geht es aber auch um das Verstehen von Empty.
Grüße
Robert
Re: scripten einer "shell" die keine Scripte kann
Ach so. Ansonsten hätte ich nämlich vorgeschlagen, einfach gphoto2 aus ’nem Script heraus anzusteuern und die gewünschten Aktionen durchführen zu lassen.Mir geht es aber auch um das Verstehen von Empty.
Re: scripten einer "shell" die keine Scripte kann
Mal mit sowas versucht?
Das '-e' ist eventuell nötig oder zu vermeiden
(Hier ist es abhängig von interaktivem Shell-Prompt oder aus Skript heraus).
Bsp.
Code: Alles auswählen
echo [-e] "show-info\nls\nexit\n" | gphoto2 --shell
(Hier ist es abhängig von interaktivem Shell-Prompt oder aus Skript heraus).
Bsp.
Code: Alles auswählen
echo [-e] "p\nl\n" | /sbin/fdisk /dev/zero
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
- RobertS
- Beiträge: 516
- Registriert: 15.04.2012 13:50:53
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Rastatt BaWü
Re: scripten einer "shell" die keine Scripte kann
[quote="rendegast"]Mal mit sowas versucht?
Das '-e' ist eventuell nötig oder zu vermeiden
(Hier ist es abhängig von interaktivem Shell-Prompt oder aus Skript heraus).
ergibt
Der shellmode von gphoto2 ist, leider, auch vorzüglich dokumentiert, außer ein paar dünner Worte in der ManPage findet sich nichts zu dem Ding.
Grüße
Robert
Code: Alles auswählen
echo [-e] "show-info\nls\nexit\n" | gphoto2 --shell
(Hier ist es abhängig von interaktivem Shell-Prompt oder aus Skript heraus).
ergibt
Code: Alles auswählen
robert@T500:/$ echo [-e] "show-info\nls\nexit\n" | gphoto2 --shell
gphoto2: {/} /> [-e] show-info\nls\nexit\n
[-e] show-info\nls\nexit\n
FEHLER: Ungültiger Befehl.
gphoto2: {/} />
robert@T500:/$
Grüße
Robert
Re: scripten einer "shell" die keine Scripte kann
Die eckigen Klammern '[...]' sollen auf einen optionalen Parameter hinweisen.$ echo [-e] "show-info\nls\nexit\n" | gphoto2 --shell
Bsp. in nahezu jeder manpage.
Code: Alles auswählen
$ echo -e "show-info\nls\nexit\n" | gphoto2 --shell
oder
$ echo "show-info\nls\nexit\n" | gphoto2 --shell
Das sieht doch schonmal gut aus,gphoto2: {/} /> [-e] show-info\nls\nexit\n
[-e] show-info\nls\nexit\n
FEHLER: Ungültiger Befehl.
die echo-Parameter werden in die gphoto-Shell übernommen.
(Erzeugen dort zwar in der Form Unfug, aber Du lernst das noch)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
- RobertS
- Beiträge: 516
- Registriert: 15.04.2012 13:50:53
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Rastatt BaWü
Re: scripten einer "shell" die keine Scripte kann
Erfreulich wenn denn doch noch Hoffnung für mich besteht.rendegast hat geschrieben:…
die echo-Parameter werden in die gphoto-Shell übernommen.
(Erzeugen dort zwar in der Form Unfug, aber Du lernst das noch)
Mit ein wenig Überlegung hätte ich da auch selber drauf kommen können.
Die Zeile passend modifiziert funktioniert sogar. Danke.
Stellt sich nur jetzt die Frage wie lang das werden darf.
Code: Alles auswählen
echo -e "capture-image\nset-config manualfocusdrive=6\ncapture-image\nset-config manualfocusdrive=6\ncapture-image\nset-config manualfocusdrive=6\ncapture-image\nset-config manualfocusdrive=6\ncapture-image" | gphoto2 --shell
Grob vermutet brauche ich 20 bis 30 Bilder in einem Aufruf, wobei der Befehl set-config manualfocusdrive=Zahl im Bereich 0 bis 6 auch mehrfach pro Bild notwendig sein kann.
Also 10 mal set-config manualfocusdrive=5, einmal capture-image.
Und das ganze 20 bis 30 mal.
Problem 1 wäre also erst einmal gelöst.
Das Programm empty hab ich damit aber immer noch nicht verstanden.
Grüße
Robert
Re: scripten einer "shell" die keine Scripte kann
Iiiih, häßlich.echo -e "capture-image\nset-config manualfocusdrive=6\ncapture-image\nset-config manualfocusdrive=6\ncapture-image\nset-config manualfocusdrive=6\ncapture-image\nset-config manualfocusdrive=6\ncapture-image" | gphoto2 --shell
In anderer Form in einem Skript
Code: Alles auswählen
echo "
capture-image
set-config manualfocusdrive=6
capture-image
set-config manualfocusdrive=6
capture-image
set-config manualfocusdrive=6
capture-image
set-config manualfocusdrive=6
capture-image
" | gphoto2 --shell
Code: Alles auswählen
echo > .konstrukt
for i in $(seq 1 10); do
echo "
capture-image
set-config manualfocusdrive=6
" >> .konstrukt
done
echo "$(cat .konstrukt)" | gphoto2 --shell
oder auch einfach
cat .konstrukt | gphoto2 --shell
Code: Alles auswählen
echo > .konstrukt
echo "echo \"" >> .konstrukt
for i in $(seq 1 10); do
echo "capture-image
set-config manualfocusdrive=6" >> .konstrukt
done
echo "\" | gphoto2 --shell" >> .konstrukt
. ./.konstrukt
Weitere Beispiele für eine solche Shell
'sqlite3', welches als Argument aber auch eine Datei mit sql-Kommandos entgegen nimmt.
'ftp'
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
- RobertS
- Beiträge: 516
- Registriert: 15.04.2012 13:50:53
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Rastatt BaWü
Re: scripten einer "shell" die keine Scripte kann
Aber so was von häßlich.rendegast hat geschrieben:Iiiih, häßlich.echo -e "capture-image\nset-config manualfocusdrive=6\ncapture-image\nset-config manualfocusdrive=6\ncapture-image\nset-config manualfocusdrive=6\ncapture-image\nset-config manualfocusdrive=6\ncapture-image" | gphoto2 --shell
I…
Für ein erstes kleines Erfolgserlebnis aber schon mal ausreichend, außerdem bekomme ich damit mehr Rückmeldungen wie wenn ich das gleich in ein wüst zusammengestopftes script packe.
Die nächsten Tips von dir führ ich mir in Ruhe zu Gemüte.
Aber schon mal Dank für die Mühe.
Grüße
Robert
- RobertS
- Beiträge: 516
- Registriert: 15.04.2012 13:50:53
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Rastatt BaWü
Re: scripten einer "shell" die keine Scripte kann
Rückmeldung von mir.
Weil die Hardware sich etwas zickig anstellt war die Lösung mit der langen Befehlszeile doch nicht der Weg zum Ziel.
Das Script autoexpect aus dem Paket expect hat mir eine ausbaubare Basis verschafft die ich mittlerweile an die Bedürfnisse angepasst habe.
Für Komfortfunktionen wie Anzahl der Bilder einer Reihe und Schrittweite des Focus werd ich mal meine Perl Bücher aus dem Regal ziehen und abstauben.
Grüße
Robert
Weil die Hardware sich etwas zickig anstellt war die Lösung mit der langen Befehlszeile doch nicht der Weg zum Ziel.
Das Script autoexpect aus dem Paket expect hat mir eine ausbaubare Basis verschafft die ich mittlerweile an die Bedürfnisse angepasst habe.
Für Komfortfunktionen wie Anzahl der Bilder einer Reihe und Schrittweite des Focus werd ich mal meine Perl Bücher aus dem Regal ziehen und abstauben.
Grüße
Robert
- RobertS
- Beiträge: 516
- Registriert: 15.04.2012 13:50:53
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Rastatt BaWü
Re: scripten einer "shell" die keine Scripte kann
Ich hab mich nach langer Zeit mich mal wieder mit dem Thema beschäftigt.
Das aktuelle gphoto2 in Buster kommt mit der Kamera nun problemlos klar.
Das Problem, das mich zu dem Shell Modus von gphoto geführt hat, war das die Knipse nach jedem Aufruf von gphoto den LiveView Modus wieder verlassen hat und ich den dann wieder händisch an der Kamera einschalten mußte. Im Shell Modus wurde die Kamera nach Abarbeitung einer Befehlszeile nicht zurückgesetzt und das nächste Kommando konnte abgesetzt werden.
Mittlerweile besteht das Problem nicht mehr und der Umweg über expect ist nicht mehr notwendig.
Nur für den Fall daß mal jemand das selbe Problem hat und diesen Thread ausgräbt.
Grüße
Robert
Das aktuelle gphoto2 in Buster kommt mit der Kamera nun problemlos klar.
Das Problem, das mich zu dem Shell Modus von gphoto geführt hat, war das die Knipse nach jedem Aufruf von gphoto den LiveView Modus wieder verlassen hat und ich den dann wieder händisch an der Kamera einschalten mußte. Im Shell Modus wurde die Kamera nach Abarbeitung einer Befehlszeile nicht zurückgesetzt und das nächste Kommando konnte abgesetzt werden.
Mittlerweile besteht das Problem nicht mehr und der Umweg über expect ist nicht mehr notwendig.
Nur für den Fall daß mal jemand das selbe Problem hat und diesen Thread ausgräbt.
Grüße
Robert