Ответ 1
из вашей рабочей cmd-линии, do
which lsof
which grep
which wc
which date
Возьмите полные пути для каждой из этих команд и добавьте их в свою оболочку script, создав что-то вроде
/bin/echo "Timestamp: `/bin/date +"%m-%d-%y %T"` Files: `/usr/sbin/lsof | /bin/grep app | /bin/wc -l`"
ИЛИ вы можете установить PATH var для включения отсутствующих значений в script, т.е.
PATH=/usr/sbin:${PATH}
Кроме того, если вы не ожидаете, что ваш script будет запущен из настоящей среды Bourne Shell, присоединитесь к началу 90-х и используйте форму $( cmd ... )
для замены cmd, а не backticks. Книга Ksh 93, опубликованная в 1995 году, отмечает, что обратные шаги для замены команд устарели, -)
IHTH