![在脚本中使用循环作为命令行参数](https://linux22.com/image/163222/%E5%9C%A8%E8%84%9A%E6%9C%AC%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%BE%AA%E7%8E%AF%E4%BD%9C%E4%B8%BA%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0.png)
所以我试图将具有特定扩展名的文件排序到特定文件夹中(用户通过命令行参数选择的文件)
可以说 $1 (.jpg) $2 (.docx) 等
该脚本一切正常,但我正在尝试编写一个循环,将这些文件分类到它们的文件夹中(只是简单地根据它们的扩展名,因此将 .jpg 放入 jpg 文件夹中,所以基本上mv .$1 $1
)我如何编写循环,以便它将总是在命令行参数中添加+1,直到没有更多的命令行参数(假设有5个),并且当没有更多的参数时,只需将未分配的文件移动到选定的文件夹中?
这是我想做的
function sorting {
count = 1
while [ $count -le 5 ]; do
mv .$count $count
count=$((count +1))
done
}
然后我们尝试调用我使用排序的脚本中的函数
答案1
您不需要参数的索引...只需这样做
for file in "$@"
do
# apply command to "$file"
done
# work here on remaining files in directory
该$file
变量将采用输入参数的连续值。请注意语法"$@"
,这确保如果参数(文件名)包含空格,它们仍将作为一个单元进行处理。