On Sun, Jul 24, 2011 at 9:09 PM, Connor Lane Smith <c...@lubutu.com> wrote: > On 24 July 2011 06:34, Dave Reisner <d...@falconindy.com> wrote: >> if [ "$path" -nt "$CACHE" ]; then > > 'test -nt' is non-portable. I think you've just discovered why we use > the 'ls -dt' hack. > > I agree that dmenu_run isn't the nicest script in existence. But > because of the tedious limitations of POSIX we don't have much choice.
Sorry, but can you give an example where `test -nt' is not available? Or can you point out what do you refer to to determine the portability of a shell script? According to Greg's wiki [1], `test -nt' is not supported by dash, although it works here with dash 0.5.6.1. Even if you must support the older versions that does not know about `test -nt', you can use find: test `find "$path" -prune -newer "$CACHE"` as a drop-in replacement, which is better than `ls -dt' after all. [1] http://mywiki.wooledge.org/Bashism