Chinaunix

标题: Linux 中Shell遇到点问题,请教一下 [打印本页]

作者: yhizyh    时间: 2013-07-09 22:11
标题: Linux 中Shell遇到点问题,请教一下
本帖最后由 yhizyh 于 2013-07-10 08:26 编辑

我在学习Bash Shell Script遇到点问题想请教一下:
脚本如下:
  1.   1 #!/bin/bash
  2.   2
  3.   3 DIR="/root"
  4.   4
  5.   5 (cd $DIR)
  6.   6
  7.   7 for f in $(ls $DIR)
  8.   8 do
  9.   9         [ -d "$f" ] && (du -s $f) || echo "$f 是一个文件"
  10. 10 done
复制代码
就是遇到目录则显示一下目录大小。但是现在执行在  [ -d "$f" ] && (du -s $f) || echo "$f 是一个文件" 这里遇到了问题,遇到的所有东西全部都是文件,没有按照目录对待。
例如:
公共的 是一个文件
模板 是一个文件
视频 是一个文件
图片 是一个文件
文档 是一个文件
下载 是一个文件
音乐 是一个文件
桌面 是一个文件
而这几个全部都是目录呀。请问这个问题出在什么地方了?

呵呵,问题自己解决了,但是不知道为什么,在第5行(cd $DIR),去掉() ,直接写cd $DIR,就OK了,但是那位能帮忙告诉一下原因吗?
作者: wenhq    时间: 2013-07-10 11:08
set -xv 看下结果。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2