我目前正试图列出作为脚本第一个参数传递的目录中所有文件的大小,但是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``是遗留语法,有几个问题,请使用
$(..)
语法。