#!/bin/sh -fCACHE=$HOME/.dmenu_cacheIFS=: qfind() { find "$@" 2>/dev/null} uptodate() { test -f $CACHE && test "$(echo "$PATH")" = "$(sed 1q "$CACHE")" && qfind $PATH -maxdepth 0 -newer $CACHE >/dev/null} if ! uptodatethen { echo "$PATH" qfind $PATH -type f -maxdepth 1 '(' -perm -u+x -o -perm -g+x -o -perm -o+x ')' | sed 's,.*/,,' | sort | uniq } > $CACHE.$pid mv $CACHE.$pid $CACHEfi tail -n +2 $CACHE