我正在尝试编写一个带有2个参数的脚本:第一个文件包含一些文件扩展名,第二个文件包含一个目录。
我的脚本将扩展名存在的文件移动到扩展名的文件中。
这是我的剧本:
BEGIN{
}
{
file_ext = $1
folder = $2
isexist = "[ -e " $1 " ]"
if( ( system(isexist) ) != 0 )
{
getline < file_ext
system("find *." $0" -exec mv {} " folder " \;")
next
}
}
END{
}
但是当我在shell中调用脚本时,我收到了这个错误:
mv:在`koko.cpp'
之后缺少目标文件操作数
当我直接输入文件夹名称时,它工作正常,但是当我通过参数传递它时它不起作用,为什么?
答案 0 :(得分:2)
通过ARGV
数组访问命令行参数:
BEGIN {
# "pop" the directory name off the arguments list
folder = ARGV[2]
ARGV[2] = ""
}
{
# then process the "file_ext" file
system("find . -name \\*." $0 " -exec mv {} " folder " \\;")
}