【发布时间】:2015-07-22 11:49:02
【问题描述】:
我需要评估目录中每个文件名的长度。这就是我所做的:
files=$(ls -Q)
for file in $files;
do
echo lenght: ${#file}
done
但长度是用双引号 (+2) 计算的。我怎么能逃脱呢?
【问题讨论】:
我需要评估目录中每个文件名的长度。这就是我所做的:
files=$(ls -Q)
for file in $files;
do
echo lenght: ${#file}
done
但长度是用双引号 (+2) 计算的。我怎么能逃脱呢?
【问题讨论】:
不要解析ls的输出,使用通配符和for:
for file in * ; do
echo "$file: ${#file}"
done
【讨论】:
你不需要 ls 来解析 ls 的输出
你可以这样做
for file in *; do
echo "length: ${#file}"
done
【讨论】:
那为什么要使用'-Q'标志呢? 如果你忽略它,你会得到文件名的实际长度。
【讨论】: