Shell学习问题

我在学习Bash Shell Script遇到点问题,编写了一个脚本

  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

就是遇到目录则显示一下目录大小。但是现在执行在  [ -d "$f" ] && (du -s $f) || echo "$f 是一个文件" 这里遇到了问题,遇到的所有东西全部都是文件,没有按照目录对待。
例如:
公共的 是一个文件
模板 是一个文件
视频 是一个文件
图片 是一个文件
文档 是一个文件
下载 是一个文件
音乐 是一个文件
桌面 是一个文件

现在自己解决了问题。问题在第5行(cd $DIR) , 去掉那个()就成功了,但是原因在哪里我还是不知道

你可能感兴趣的:(linux,shell)