尝试创建while循环以从指定的测试文件夹中删除8个文件。我一直收到错误no such file or directory
即使我很肯定我在正确的文件夹中,因为我可以使用ls
命令来查看文件......无论如何,这里是我所拥有的
#!/bin/bash
var=(`ls ~/Random/Unit1/Test`)
x=${#var[@]}
i=0
while [ $i -lt $x ] ; do
rm $var # this line is incorrect and needs changing
((i++))
done
答案 0 :(得分:1)
var是一个数组变量,现在你正在以标量的形式访问它,在bash中返回第一个值,所以你删除了第一个文件,然后尝试再次删除目录中的每个文件。如果你想删除每个索引所需的每个文件,那么在循环中你将获得数组中的第n个值,即
rm ${var[$i]}
答案 1 :(得分:0)
您的脚本存在一些问题,第一个问题是您应该cd
到要删除文件的文件夹,您可以使用pushd
和{{1} } 为了它。其次,您应该用{双引号括起popd
变量。另外,如@redball's answer中所述,您正在访问数组,您必须在其上使用数组表示法。
var