我是Unix shell环境中编程的新手,我对如何获取目录大小提出了疑问。我读过你可以做的命令如: du,du -b等。但是,当我尝试将它放在我的程序中时,它会以某种方式返回路径名而不是实际的目录大小。这就像连接不起作用或其他东西。 .garbage文件肯定在我的主目录中,所以我不知道问题是什么。这可能是我忽略的一些愚蠢的错误。如果有任何一双新眼睛或有UNIX经验的人可以为我看看这个,我将非常感激!这是我的shell代码:
#!/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."
答案 0 :(得分:5)
您似乎错过了在回显线上使用命令替换。 您必须使用此类反对标记将您的电话与du -sh联系起来
echo "size is:" `du -sh` "...."