这是我正在尝试做的事情:
为shell脚本提供一个参数,该脚本将在jpg,bmp,tif扩展名的所有文件上运行任务.
例如:./ doProcess/media/repo/user1/dir5
并且该目录中的所有jpg,bmp,tif文件都将运行某个任务.
我现在拥有的是:
for f in *
do
imagejob "$f" "output/${f%.output}" ;
done
Run Code Online (Sandbox Code Playgroud)
我需要帮助for循环来限制文件类型,并且还有一些在指定目录而不是当前目录下启动的方法.
使用shell扩展而不是 ls
for file in *.{jpg,bmp,tif}
do
imagejob "$file" "output/${file%.output}"
done
Run Code Online (Sandbox Code Playgroud)
如果你有bash 4.0+,你也可以使用 globstar
shopt -s globstar
shopt -s nullglob
shopt -s nocaseglob
for file in **/*.{jpg,bmp,tif}
do
# do something with $file
done
Run Code Online (Sandbox Code Playgroud)
for i in `ls $1/*.jpg $1/*.bmp $1/*.tif`; do
imagejob "$i";
done
Run Code Online (Sandbox Code Playgroud)
这是假设您使用的是类似 bash 的 shell,其中$1第一个参数是给它的。
你还可以这样做:
find "$1" -iname "*.jpg" -or -iname "*.bmp" -or -iname "*.tif" \
-exec imagejob \{\} \;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5264 次 |
| 最近记录: |