我在学习Bash Shell Script遇到点问题想请教一下:
脚本如下:
[list=1][*] 1 #!/bin/bash[*] 2[*] 3 DIR="/root"[*] 4[*] 5 (cd $DIR)[*] 6[*] 7 for f in $(ls $DIR)[*] 8 do[*] 9 [ -d "$f" ] && (du -s $f) || echo "$f 是一个文件"[*] 10 done[/list]就是遇到目录则显示一下目录大小。但是现在执行在 [ -d "$f" ] && (du -s $f) || echo "$f 是一个文件" 这里遇到了问题,遇到的所有东西全部都是文件,没有按照目录对待。
例如:
公共的 是一个文件
模板 是一个文件
视频 是一个文件
图片 是一个文件
文档 是一个文件
下载 是一个文件
音乐 是一个文件
桌面 是一个文件
而这几个全部都是目录呀。请问这个问题出在什么地方了?
jeffkuang1 于 2013-10-09 21:44:29发表:
向楼主学习了。
wmfos 于 2013-07-12 15:13:25发表:
[ -d "$f" ] && (du -s $f) || echo "$f 是一个文件"
修改为
[ -d "$DIR/$f" ] && (du -s $DIR/$f) || echo "$DIR/$f 是一个文件"
yyt_chg 于 2013-07-10 10:03:23发表:
谢谢楼主分享,学习中。