我想循环通过目录内的文件名,以便我可以执行每个操作。bash做循环与目录的长度
我能遍历仅有10名,如果我使用:
var=($(ls directory))
for k in {1..10}
do
echo ${var[$k]}
done
这使我在我的目录中的第10名。但是,我想循环所有这些。
如果我做的:
length=($(ls directory -1 | wc -l))
我得到的长度(在这个例子中,它是62)
所以,当我结合得不得了:
var=($(ls directory))
length=($(ls directory -1 | wc -l))
for k in {1..$length}
do
echo ${var[$k]}
done
我得到的错误'语法错误:期望的操作数(错误标记为“{1..62}”)
任何帮助解决此问题或更好的s解决方案将不胜感激!
[括号扩展] (https://www.gnu.org/software/bash/manual/bash.html#Brace-Expansion)既强大又有限。观察它发生在任何变量被展开之前,所以任何尝试使用'{1 .. $ length}'注定要失败。 –