#!/bin/sh
if [[ -d "$path" ]]; then
cd "$path" && echo "$PWD"
for file in *.jpg *.png *.jpeg *.gif *.gifv *.bmp; do
mv "$file" "$destpath"
done
fi
由于POSIX中没有定义数组。我可以将*.jpg *.png *.jpeg *.gif *.gifv *.bmp;
放入函数中吗?因为我在脚本中多次使用这些。
在我的例子中是否可以重构cd "$path" && echo "$PWD"
?例如摆脱cd
命令,但仍然达到同样的效果?谢谢!
答案 0 :(得分:0)
您可以使用`ls * .jpg * .png * .jpeg * .gif * .gifv * .bmp` 此语法,而不是制作数组。
#!/bin/bash
if [[ -d "$path" ]]; then
cd "$path" && echo "$PWD"
for file in `ls *.jpg *.png *.jpeg *.gif *.gifv *.bmp`; do
mv "$file" "$destpath"
done
fi
注意: destpath 应该是绝对路径。如果不是,则将destpath视为字符串。
答案 1 :(得分:0)
这个适用于多种文件类型
for file in *.{jpg,jpeg,png,gif,gifv,bmp}; do
done