Johannes Schindelin wrote: > > Hi, > > On Wed, 4 Jul 2007, Johannes Sixt wrote: > > > - test -r "$workdir/../map/$1" || echo "$1" > > - cat "$workdir/../map/$1" > > + test -r "$workdir/../map/$1" && > > + cat "$workdir/../map/$1" || > > + echo "$1" > > I think this does not do what you want. If I read it correctly, it will > not do anything if $workdir/../map/$1 is not readable. I think you need > this: > > (test -r "$workdir/../map/$1" && > cat "$workdir/../map/$1") || > echo "$1" > > But that is a little too cute, so I personally would prefer an > if-then-else-fi, because that is the idea of that code snippet. It does do what I think it should do. I tested it. Your elaborate version is not required. The reason is that in the shell && and || have equal precedence; if there is ... && cmd ... then cmd is run if the most recent result is success, and if there is ... || cmd ... then cmd is run if the most recent result is failure; in both cases cmd is otherwise skipped and does not count as "most recent result". -- Hannes - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html