1

我是在 Unix shell 环境中编程的一个相对较新的人,我有一个关于如何获取目录大小的问题。我读过您可以执行以下命令;du、du -b 等等。但是,当我尝试将其放入我的程序中时,它会以某种方式返回路径名而不是实际的目录大小。这就像串联不起作用或什么的。.garbage 文件肯定在我的主目录中,所以我不知道问题出在哪里。这可能是我忽略的一些愚蠢的错误。如果任何一双新鲜的眼睛或有 UNIX 经验的人可以帮我看看这个,我将不胜感激!这是我的外壳代码:

    #!/bin/tcsh -f

set n = 1

mkdir -p ~/.garbage

while ($n <= $#argv)
 if ( -d $argv[$n] ) then
   echo "$argv[$n] is a directory and cannot be removed"
 else


     mv $argv[$n] ~/.garbage

     echo "The file moved to the garbage directory was: "$argv[$n] "\n"

 endif 
@ n++
end

  echo "The garbage bin's size is: " du ~/.garbage "bytes."
4

1 回答 1

5

您似乎错过了在 echo 行上使用命令替换。你必须用这样的反引号括起你对 du -sh 的调用

echo "size is:" `du -sh` "...."
于 2013-02-09T04:06:52.597 回答