On Mon, Apr 24, 2017 at 11:39:26AM +0200, Torsten Bögershausen wrote: > [] > > > > > > - cd "$(dirname "$remove_trash")" && > > > - rm -rf "$(basename "$remove_trash")" || > > > - error "Tests passed but test cleanup failed; aborting" > > > + cd "$(dirname "$TRASH_DIRECTORY")" && > > > + rm -fr "$TRASH_DIRECTORY" || > > > + error "Tests passed but test cleanup failed; aborting" > > > + fi > > > > Yeah, that looks good to me. > > Does it ? > Checking the error code of "rm -f" doesn't work as expected from the script: > rm -rf DoesNotExist ; echo $? > 0 ENOENT is treated specially by "rm -f". We cover that case explicitly with the "test -d" above (in the bit you didn't quote), and then rely on "rm" to report other errors. Like: $ rm -rf /etc/passwd ; echo $? rm: cannot remove '/etc/passwd': Permission denied 1 > I think it should be > > > > + cd "$(dirname "$TRASH_DIRECTORY")" && > > > + rm -r "$TRASH_DIRECTORY" || > > > + error "Tests passed but test cleanup failed; aborting" I think we need the "-f" to overcome rm's tendency to prompt in some cases: $ echo content >foo $ chmod 0 foo $ rm foo rm: remove write-protected regular file 'foo'? ^C $ rm -f foo [no output; it just works] -Peff