在脚本中使用循环作为命令行参数

在脚本中使用循环作为命令行参数

所以我试图将具有特定扩展名的文件排序到特定文件夹中(用户通过命令行参数选择的文件)

可以说 $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变量将采用输入参数的连续值。请注意语法"$@",这确保如果参数(文件名)包含空格,它们仍将作为一个单元进行处理。

相关内容