# locates a process given a search pattern to match in the process list.
function psfind() {
local -a patterns=("${@}")
- mkdir $TEST_TEMP/grid_logs &>/dev/null
local PID_DUMP="$(mktemp "$TMP/zz_pidlist.XXXXXX")"
local -a PIDS_SOUGHT
if [ "$OS" == "Windows_NT" ]; then
# we 'type' the file to get rid of the unicode result from wmic.
cmd $flag type "$tmppid" >$PID_DUMP
\rm "$tmppid"
- local CR='
-' # embedded carriage return.
- local appropriate_pattern="s/^.* *\([0-9][0-9]*\)[ $CR]*\$/\1/p"
+# local CR='
+#' # embedded carriage return.
+# local appropriate_pattern="s/^.* *\([0-9][0-9]*\)[ $CR]*\$/\1/p"
+ local appropriate_pattern="s/^.* *\([0-9][0-9]*\) *\$/\1/p"
for i in "${patterns[@]}"; do
PIDS_SOUGHT+=($(cat $PID_DUMP \
| grep -i "$i" \
done
fi
if [ ${#PIDS_SOUGHT[*]} -ne 0 ]; then
- local TMPFUD=$(mktemp $TMP/junkpids.XXXXXX)
- printf -- '%s\n' ${PIDS_SOUGHT[@]} | sort | uniq >$TMPFUD
- PIDS_SOUGHT=$(cat $TMPFUD)
+ local PIDS_SOUGHT2=$(printf -- '%s\n' ${PIDS_SOUGHT[@]} | sort | uniq)
+ PIDS_SOUGHT=()
+ PIDS_SOUGHT=${PIDS_SOUGHT2[*]}
echo ${PIDS_SOUGHT[*]}
-#rm $TMPFUD
fi
/bin/rm $PID_DUMP
}
echo "psa finds processes by pattern, but there was no pattern on the command line."
return 1
fi
- p=$(psfind "$1")
+ p=$(psfind "${@}")
if [ -z "$p" ]; then
# no matches.
return 0
fi
echo ""
- echo "Processes containing \"$1\"..."
+ echo "Processes matching ${@}..."
echo ""
if [ -n "$IS_DARWIN" ]; then
unset fuzil_sentinel