如何从命令行连续打开多个图像文件进行编辑?

Ven*_*hy6 7 command-line bash

假设我有三个要编辑的图像文件。考虑所有文件都在~/Pictures. 假设第一个文件的1.svg名称为,第二个文件的2.svg名称和第三个文件的名称为3.svg。我有 Inkscape 编辑器。现在,我想要执行一个 bash 脚本,以便必须发生以下情况:

  1. 首先1.svg必须打开让我编辑。
  2. 编辑后,当我关闭该文件时,2.svg必须自动打开供我编辑。
  3. 现在当我完成编辑时2.svg,我想3.svg打开编辑。
  4. 现在编辑3.svg脚本后必须关闭 GIMP。

PS:-如果你想知道这是否是家庭作业,它不是!见这里。您会注意到我必须在那里编辑图像。为了更好地回答这个问题,我在这里需要帮助。所以请帮忙。也是一个完整的初学者。我对 bash 一无所知。因此,请尽可能详细地解释您的答案。您也可以考虑使用 GIMP 编辑器来编辑 .jpg 文件。它可能对其他人有用。顺便说一下,我使用的是 14.04 LTS 。提前致谢。

更新:- 上面链接的答案是根据下面接受的答案编辑的。

Nat*_*gew 8

正如 Rmano 所说,你可以简单地for在终端中做一个循环:

for i in 1.jpg 2.jpg 3.jpg; do gimp $i; done
Run Code Online (Sandbox Code Playgroud)

要么在文件所在的目录中运行它,要么每个文件都应该有它的其余路径。您可以在其中放置任意数量的文件。

GIMP 将打开文件,您编辑它,然后关闭 GIMP。一旦 GIMP 关闭,for循环将继续并打开列表中的下一个文件。

如果不想每次都关闭 GIMP,可以尝试添加read -p

for i in 1.jpg 2.jpg 3.jpg; do gimp $i && read -p "Press [Enter] key to continue..."; done
Run Code Online (Sandbox Code Playgroud)

完成文件编辑后,您应该能够在终端中按 Enter,下一个文件应该会在 GIMP 中打开,而无需关闭 GIMP。

这是我能想到的最简单的方法,尝试检测 GIMP 何时关闭文件可能会变得复杂。

请注意您的情况

正如 Rmano 指出的那样,大多数文件都是 SVG 文件。因此,列出所有 SVG 文件并替换gimpinkscape. PNG 文件可以使用gimp.


Gil*_*il' 7

以下命令在默认关联应用程序中打开文件

edit 1.svg 2.svg 3.svg
Run Code Online (Sandbox Code Playgroud)

如果.svg要按字母顺序打开所有文件,可以使用*通配符:

edit *.svg
Run Code Online (Sandbox Code Playgroud)

*代表任何字符序列,因此您可以以其他方式使用它;例如,要连续打开.svg名称包含wibble以下内容的文件:

edit *wibble*.svg
Run Code Online (Sandbox Code Playgroud)

如果您想根据更细粒度的模式选择文件,则存在其他通配符。