红联Linux门户
Linux帮助

Linux 中Shell遇到点问题,请教一下

发布时间:2013-07-09 22:40:48来源:红联作者:yhizyh
我在学习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 是一个文件" 这里遇到了问题,遇到的所有东西全部都是文件,没有按照目录对待。
例如:
公共的 是一个文件
模板 是一个文件
视频 是一个文件
图片 是一个文件
文档 是一个文件
下载 是一个文件
音乐 是一个文件
桌面 是一个文件
而这几个全部都是目录呀。请问这个问题出在什么地方了?
文章评论

共有 3 条评论

  1. jeffkuang1 于 2013-10-09 21:44:29发表:

    向楼主学习了。

  2. wmfos 于 2013-07-12 15:13:25发表:

    [ -d "$f" ] && (du -s $f) || echo "$f 是一个文件"
    修改为
    [ -d "$DIR/$f" ] && (du -s $DIR/$f) || echo "$DIR/$f 是一个文件"

  3. yyt_chg 于 2013-07-10 10:03:23发表:

    谢谢楼主分享,学习中。