假设我有三个要编辑的图像文件。考虑所有文件都在~/Pictures. 假设第一个文件的1.svg名称为,第二个文件的2.svg名称和第三个文件的名称为3.svg。我有 Inkscape 编辑器。现在,我想要执行一个 bash 脚本,以便必须发生以下情况:
1.svg必须打开让我编辑。2.svg必须自动打开供我编辑。2.svg,我想3.svg打开编辑。3.svg脚本后必须关闭 GIMP。PS:-如果你想知道这是否是家庭作业,它不是!见这里。您会注意到我必须在那里编辑图像。为了更好地回答这个问题,我在这里需要帮助。所以请帮忙。我也是一个完整的初学者。我对 bash 一无所知。因此,请尽可能详细地解释您的答案。您也可以考虑使用 GIMP 编辑器来编辑 .jpg 文件。它可能对其他人有用。顺便说一下,我使用的是 14.04 LTS 。提前致谢。
更新:- 上面链接的答案是根据下面接受的答案编辑的。
正如 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 文件并替换gimp为inkscape. PNG 文件可以使用gimp.
以下命令在默认关联应用程序中打开文件:
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)
如果您想根据更细粒度的模式选择文件,则存在其他通配符。