1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#!/bin/sh CACHE=$HOME/.dmenu_cache UPTODATE=1 IFS=: if test ! -f $CACHE then unset UPTODATE fi if test $UPTODATE then for dir in $PATH do test $dir -nt $CACHE && unset UPTODATE done fi if test ! $UPTODATE then for dir in $PATH do for file in "$dir"/* do test -x "$file" && echo "${file##*/}" done done | sort | uniq > $CACHE fi cat $CACHE