Some basic questions.
What Operating System do you have?
uname -a
What Shell are you using?
echo "${SHELL}"
The script in Post #1 appears to be designed to look at all the directories which match the pattern *ROUTE* and count the number of files where the name of the file (not the contents) does not contain the string "DONE".
Hmm. The script as posted does not set a value for ${tmp_file}.
One idea without knowing what Shell you have:
Had a bit of fun avoiding the sort of syntax extensions we find in certain modern Shells.
Note the use of "ls -1" (one) rather than "ls -l" (ell).
I have assumed that there is only one depth of directory and removed "-r" from "ls". This may be wrong!
# Parameters
record_count_threshold=20
# Create temporary file including current process ID "$$" in the file name.
tmp_file=/tmp/mytmpfile_$$
touch "${tmp_file}" # Ensure file exists. This stops the count process failing if there is no backlog.
#
# Processing starts here
#
cd /usr/apps/data/output
#
# Look for directory names containing the string "ROUTE".
# Allow for no match by redirecting STDERR
ls -1d *ROUTE* 2>/dev/null | while read dir
do
# Make sure that this is a directory
if [ -d "${dir}" ]
then
# Look for file matches
# Allow for no match by redirecting STDERR
ls -1 "${dir}" 2>dev/null | grep -v "DONE" | while read filename
do
# Is the match a file?
if [ -f "${filename}" ]
then
# Output the filename so we can count them
echo "${filename}"
fi
done
fi
done > ${tmp_file}
#
# Count the number of matching files
backlog=`cat ${tmp_file}|wc -l`
# Compare with threshold. -gt means Greater Than.
if [ ${backlog} -gt ${record_count_threshold} ]
then
echo "Number of files backlogged: ${backlog}"
else
echo "NO BACKLOG"
fi
#
# Clean up temporary file
rm "${tmp_file}"
Ps. Anybody who posts UUOC had better have a proven alternative piece of code.
@pludi & LOL
1) We don't know whether this Shell supports $( command ) syntax thought the redirect on the "done" line does suggests that it is ksh.
Anyway the "cat" solution is faster and easier to read.
2) Worth reading the "Useful Uses of Cat" web page. Useful use of cat(1)
And Kernigan's document which is appended to that page. I really missed the "pip" command.