【发布时间】:2017-08-04 22:31:05
【问题描述】:
我有一个名为 threshold 的程序。我在一个名为 images 的目录中有一组图像。
|-- images
| -----img_1.jpg
| -----img_2.jpg
| -----img_3.jpg
| ------
| ------img_n.jpeg
|-- threshold.exe
|-- myscript
如何编写 bash 脚本,使其接受目录名作为参数,并将目录中的每个文件作为参数单独传递给程序 threshold.exe。
如果我执行,
$./myscript images
最后的执行应该是这样的。
./threshold.exe img_1.jpg./threshold.exe img_2.jpg........./threshold.exe img_n.jpg
【问题讨论】:
-
你自己尝试了什么/
-
运行时,您的批处理文件将为您提供“内部”变量。假设一个批处理文件“DoIt.bat”。像
doit.bat "c:\folder path\to\wherever"这样的调用会将"c:\folder path\to\wherever"参数停放在变量 %1 中。因此,您将查询 %1 的文件列表并将每个文件传递给threshold @file。 ForFiles / Batch parameters 玩得开心。试试看,发布您的代码,我们将帮助您走得更远。不过,您在 Windows 中吗? -
类似 'for %%i in (path to directory \ *.jpg) do threshold.exe %%i' 我猜这应该可行..
-
顺便说一句,
./threshold img_1.jpg不起作用,因为threshold位于父目录中,而不是当前目录中。您想要./threshold images/img_1.jpg或与../threshold img_1.jpg等效的名称。 -
未来,顺便说一句,试着关注stackoverflow.com/help/mcve -- 发布一个问题,不仅描述你想做什么,还描述你尝试了什么,它是如何失败的,以及 导致相同故障的最短代码量,其构造使得其他人(不仅仅是您)可以运行它并看到相同的结果。
标签: bash command-line-arguments