1

私はUnixシェル環境でのプログラミングに比較的慣れていないので、ディレクトリのサイズを取得する方法について質問がありました。次のようなコマンドを実行できることを読みました。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

エコーラインでコマンド置換を使用できなかったようです。du-shへの呼び出しをこのようなバッククォートで囲む必要があります

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