Команды `du` и` awk` не найдены при запуске скрипта

Я провел учебное пособие по последнему руководству Linux Shell для Linux Pro mag, и у меня возникли проблемы с тем, чтобы этот блок кода работал. Когда я запускаю скрипт, он говорит мне, что команды du и awk не найдены.

#!/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_gb из 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 }

Мне удалось запустить каждую команду du -s ~username и awk '{ print $1 }' из командной строки без проблем и увидеть ожидаемый вывод, но сценарий не работает.

0
задан 6 August 2017 в 22:30

2 ответа

PATH=/bin:/user/bin

должно быть

PATH=/bin:/usr/bin

Оба awk и du находятся в /usr/bin:

$ type -p du;type -p awk /usr/bin/du /usr/bin/awk
1
ответ дан 18 July 2018 в 08:58
PATH=/bin:/user/bin

должно быть

PATH=/bin:/usr/bin

Оба awk и du находятся в /usr/bin:

$ type -p du;type -p awk /usr/bin/du /usr/bin/awk
1
ответ дан 24 July 2018 в 19:13

Другие вопросы по тегам:

Похожие вопросы: