运行脚本时未找到 `du` 和 `awk` 命令

运行脚本时未找到 `du` 和 `awk` 命令

我正在学习 Linux Pro mag 的最新 Linux Shell Handbook 教程,但无法让这段代码正常工作。当我运行脚本时,它告诉我未找到命令duawk

#!/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

以下to_gbfunction.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
    }

我已经能够毫无问题地从命令行运行每个命令并看到预期的输出,但是脚本无法运行du -s ~usernameawk '{ print $1 }'

答案1

PATH=/bin:/user/bin

应该

PATH=/bin:/usr/bin

awk和均du位于/usr/bin

$ type -p du;type -p awk
/usr/bin/du
/usr/bin/awk

相关内容