Nehmen wir an, ich muss drei Bilddateien bearbeiten. Bedenken Sie, dass sich alle Dateien in befinden ~/Pictures
. Der Name der ersten Datei sei 1.svg
, der Name der zweiten Datei sei 2.svg
und der Name der dritten Datei sei. 3.svg
Ich habe den Inkscape-Editor. Jetzt möchte ich, dass ein Bash-Skript ausgeführt wird, damit Folgendes geschehen muss:
- Zuerst
1.svg
muss sich für mich öffnen, um zu bearbeiten. - Wenn ich diese Datei nach dem Bearbeiten schließe,
2.svg
muss sie automatisch geöffnet werden, damit ich sie bearbeiten kann. - Wenn ich die Bearbeitung abgeschlossen habe
2.svg
, möchte ich3.svg
sie zur Bearbeitung öffnen. - Nach dem Bearbeiten
3.svg
muss das Skript nun durch Schließen von GIMP beendet werden.
PS: - Wenn Sie sich fragen, ob dies Hausarbeit ist, ist es nicht! Siehe hier . Sie werden feststellen, dass ich dort Bilder bearbeiten muss. Um diese Antwort besser zu machen, brauche ich hier Hilfe. Also bitte helfen. Auch ich bin ein vollständiger Anfänger . Ich weiß nichts über Bash. So erläutern Sie Ihre Antwort so ausführlich wie möglich . Sie können auch eine Antwort mit dem GIMP-Editor geben, um JPG-Dateien zu bearbeiten. Es könnte für andere nützlich sein. Ich benutze übrigens 14.04 LTS. Danke im Voraus.
UPDATE: - Die oben verlinkte Antwort wurde gemäß der unten akzeptierten Antwort bearbeitet.
quelle
for i in 1.jpeg 2.jpeg 3.jpg; do gimp $i; done
? Dies wird Gimp jedes Mal neu starten, hart. Wenn Sie das tun möchten, ohne Gimp zu schließen, sollten Sie wahrscheinlich ein Gimp-Skript verwenden (das ich überhaupt nicht verstehe). Ich denke immer noch, dass das Öffnen als Tabs, wie @Nattgew sagt, die beste Option ist ... (Übrigens, in Ihrer verknüpften Antwort werden.svg
Dateien besser nicht von GIMP bearbeitet; es handelt sich um Vektorformen, Sie sollten zB Inkscape verwenden).Antworten:
Wie Rmano sagt, können Sie einfach eine
for
Schleife im Terminal ausführen :Führen Sie dies entweder in dem Verzeichnis aus, in dem sich die Dateien befinden, oder jede Datei sollte den Rest des Pfads dazu haben. Sie können dort so viele Dateien ablegen, wie Sie möchten.
GIMP öffnet die Datei, Sie bearbeiten sie und schließen dann GIMP. Sobald GIMP geschlossen ist, wird die
for
Schleife fortgesetzt und die nächste Datei in der Liste geöffnet.Wenn Sie GIMP nicht jedes Mal schließen möchten, können Sie Folgendes hinzufügen
read -p
:Sobald Sie die Bearbeitung einer Datei abgeschlossen haben, sollten Sie im Terminal die Eingabetaste drücken können, und die nächste Datei sollte in GIMP geöffnet werden, ohne dass GIMP geschlossen werden muss.
Dies ist der einfachste Weg, den ich mir vorstellen kann. Es kann kompliziert werden, zu erkennen, wann GIMP eine Datei schließt.
Hinweis für Ihren Fall
Die meisten Dateien sind SVG-Dateien, wie Rmano hervorhob. Listen Sie also alle Ihre SVG-Dateien auf und ersetzen Sie sie
gimp
durchinkscape
. Die PNG-Dateien sind in Ordnung mitgimp
.quelle
~/Pictures
Verzeichnis sein, ja. und Sie können einfach durch einengimp
beliebigen Editor ersetzen, den Sie verwenden möchten.sudo
Berechtigungen verwenden. Sie müssen verwenden,sudo
weil Sie Dateien in bearbeiten/usr
. IMO ist diese Antwort immer noch besser als meine.Der folgende Befehl öffnet die Dateien in der zugeordneten Standardanwendung :
Wenn Sie alle
.svg
Dateien in alphabetischer Reihenfolge öffnen möchten , können Sie den*
Platzhalter verwenden:*
steht für eine beliebige Folge von Zeichen, sodass Sie sie auf andere Weise verwenden können; Zum Beispiel, um nacheinander die.svg
Dateien zu öffnen , deren Name Folgendes enthältwibble
:Andere Platzhalter sind vorhanden, wenn Sie Dateien basierend auf feinkörnigeren Mustern auswählen möchten.
quelle
find -exec
wenn ich einige von ihnen selektiv öffnen möchte.Sie könnten so etwas versuchen:
Ich habe es in meinem Bilderverzeichnis getestet und es schien zu funktionieren.
Ich verstehe die erste Zeile noch nicht ganz, aber sie soll dazu beitragen, dass meine
*
Werke funktionieren. Diefor
Schleife durchläuft dann nacheinander alles im aktuellen Verzeichnis. Wenn es sich nicht um ein Verzeichnis handelt, wird es zur Bearbeitung in Inkscape geöffnet.Wenn Sie mit dem Bearbeiten und Schließen von inkscape fertig sind, wird das nächste Bild geöffnet, bis keine Bilder mehr vorhanden sind.
Für Ihren speziellen Fall (nach dem Lesen der verknüpften Frage) funktioniert dies möglicherweise besser. Denken Sie daran,
cd
zu/usr/share/unity/icons
und führen Sie dies:Ersetzen
file1.svg file2.svg file3.svg
durch eine Liste der Dateien, die Sie bearbeiten möchten.quelle
nullglob
bedeutet es , dass es nicht versucht, ein Literal zu iterieren,*
wenn es mit nichts anderem übereinstimmt?sudo inkscape
da Sie Dateien in / usr bearbeiten./bin/sh
(wasdash
auf Ubuntu-Systemen ist) und nichtbash
. Der[[ ]]
Test ist nicht verfügbar indash
. Ändern Sie einfach Ihre erste Zeile (den Shebang) in#!/bin/bash
oder,#!/usr/bin/env bash
und Seths erste Version wird gut funktionieren.