#!/bin/sh # Par Julien MOREAU ( jmoreau@bigfoot.com ) lim=30 # Limite par défaut pour option -p nbps=1 # Nombre de paramêtres souhaités (sans option) bold=`tput bold` # Pour mettre en gras dlob=`tput rmso` # Pour désactiver le gras nom_cmde=`basename $0` # Nom de la commande usage="Usage: $nom_cmde [-k|-m|-p [limite]] [repertoire]" # Message d'aide usage=$usage"\n Donne la taille mémoire de votre compte ou d'un répertoire." usage=$usage"\n\tOption -k : seule la taile en ko sera affiche." usage=$usage"\n\tOption -m : seule la taile en Mo sera affiche." usage=$usage"\n\tOption -p : à utiliser dans le .profile ; n'affiche qqch" usage=$usage"\n\t\tque lorsque le compte dépasse la limite (en Mo)." usage=$usage"\n\t\tLa valeur limite par défaut est de $lim Mo." usage=$usage"\n\tOption -h : Affiche ce message d'aide." if test `uname` != "HP-UX" ; then e="-e" ; fi #if test "$1" = "-k" -o "$1" = "-m" -o "$1" = "-p" ; then opt=$1 ; shift ; fi case "$1" in "-k") opt=k ; shift ;; "-m") opt=m ; shift ;; "-p") opt=p ; shift ;; "-h") opt=h ; shift ;; esac if [ "$opt" = "p" -a $# -ge 1 ] ; then lim=$1 ; shift ; fi if [ $# -gt $nbps -o "$opt" = "h" ] ; then echo $e $usage 1>&2 ; exit 2 fi rep=~ ; cible="de votre compte" if [ $# -ge 1 ] ; then rep=$1 ; cible="du répertoire \"$rep\"" ; fi if [ "$rep" = "." ] ; then cible="du répertoire courant" ; fi lim=`expr $lim \* 1024` # Limite en ko tdu=`/bin/du -s $rep 2> /dev/null|cut -f1` # Taille en block de 512 octets tko=`expr $tdu / 2` # Taille en ko if test "$opt" = "p" -a "$tko" -lt "$lim" ; then exit 0 ; fi if test "$opt" = "p" ; then echo $e " *** Attention : \c" ; fi if test "$opt" = "k" ; then echo "$tko" ; exit 0 ; fi if test "$opt" != "m" ; then echo $e "La taille $cible est de : \c" fi nbdko=`echo $tko|wc -c` nbdko=`expr $nbdko - 1` # Nb de digits dans tko if [ "$nbdko" -le 3 ] ; then tko="00$tko" ; nbdko=`expr $nbdko + 2` ; fi nbdmo=`expr "$nbdko" - 3` # Nb de digits pour les Mo moe=`echo $tko|cut -c-$nbdmo` # Partie entière des Mo nbdemo=`expr $nbdko - 2` # Nb de digits pour la partie entière mod=`echo $tko|cut -c$nbdemo-` # Partie décimal des Mo #echo $e "\ntko=$tko\tnbdko=$nbdko\tmoe=$moe\tnbdemo=$nbdemo\tmod=$mod" if test "$opt" = "m" ; then echo "$moe.$mod" else echo "$moe.$mod Mo." if test "$opt" != "p" ; then echo "Utilisez l'option -h pour avoir de l'aide sur cette commande." echo "${bold}Pour vous aider à faire de la place sur votre compte," echo $e " vous pouvez utiliser le script \"clean\".${dlob}" fi fi exit 0 # Sortie sans erreur