【问题标题】:Substitute double with single quotes用单引号替换双精度
【发布时间】:2015-07-22 11:49:02
【问题描述】:

我需要评估目录中每个文件名的长度。这就是我所做的:

files=$(ls -Q)
for file in $files;
do
    echo lenght: ${#file}
done

但长度是用双引号 (+2) 计算的。我怎么能逃脱呢?

【问题讨论】:

标签: string bash quotes


【解决方案1】:

不要解析ls的输出,使用通配符和for

for file in * ; do
    echo "$file: ${#file}"
done

【讨论】:

    【解决方案2】:

    你不需要 ls 来解析 ls 的输出

    你可以这样做

    for file in *; do
        echo "length: ${#file}"
    done
    

    【讨论】:

      【解决方案3】:

      那为什么要使用'-Q'标志呢? 如果你忽略它,你会得到文件名的实际长度。

      【讨论】:

      • 除非文件名包含空格。
      猜你喜欢
      • 2021-08-12
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-26
      • 2013-04-15
      相关资源
      最近更新 更多