我目前正试图列出作为脚本第一个参数传递的目录中所有文件的大小,但是linux中的-f选项不起作用,或者我遗漏了什么。
代码如下:

for tmp in "$1/*"
do
  echo $tmp
  if [ -f "$tmp" ]
     then num=`ls -l $tmp | cut -d " " -f5`
       echo $num
  fi
done

我该如何解决这个问题?

最佳答案

我认为错误在于glob语法在单引号或双引号中都不起作用,

for tmp in "$1"/*; do
..

执行以上操作以展开引号外的glob。
在你的脚本中还有一些改进,
双引号引用变量以防止分词,例如echo "$temp"
backtick command substitution``是遗留语法,有几个问题,请使用$(..)语法。

10-07 19:38
查看更多