PATH=/bin:/user/bin
deve ser
PATH=/bin:/usr/bin
Tanto awk
como du
estão em /usr/bin
:
$ type -p du;type -p awk
/usr/bin/du
/usr/bin/awk
Eu estava passando por um tutorial sobre o mais recente Linux Shell Handbook para Linux Pro mag e estou tendo problemas para fazer esse bloco de código funcionar. Quando executo o script, ele informa que os comandos du
e awk
não foram encontrados.
#!/bin/bash
PATH=/bin:/user/bin
. /usr/local/sbin/functions.bash
printf "USER\tGB USED\n"
for WHO in $(</user/local/sbin/chusers); do
HOMESUM='eval du -s -$WHO |awk '{print $1}''
TMPLIST=$( ls -lR --block-size 1024 $(</user/local/bin/chdirs) | egrep "^.......... +[0-9]+ $WHO" | awk '{print $5}' )
TSUM=0
for N in $TMPLIST; do
TSUM=$(( $TSUM+$N ))
done
TOT=$(( $HOMESUM+$TSUM ))
to_gb $WHO $TOT
done
Aqui está a função to_gb
de function.bash
to_gb()
{
local MB D1 D2 USER
USER=$1
MB=$(( $2/1024))
D1=$(( $MB/1000))
D2=$(( $MB-($D1*1000) ))
printf "%s\t%s\n" $USER $D1.${D2:0:1}
return
}
Eu consegui executar cada comando du -s ~username
e awk '{ print $1 }'
da linha de comando sem problemas e vi a saída esperada, mas o script não funciona.
PATH=/bin:/user/bin
deve ser
PATH=/bin:/usr/bin
Tanto awk
como du
estão em /usr/bin
:
$ type -p du;type -p awk
/usr/bin/du
/usr/bin/awk