cygpath -m behaviour change

Andrey Repin anrdaemon@yandex.ru
Mon Sep 16 22:03:00 GMT 2013


Greetings, David Griffiths!

>> Yes, that's exactly right, assuming that 'boo' doesn't exist.

> Hi, it happens even if boo does exist. To put it in context, the
> script in question was attempting to determine the current directory:

> CURRENT_DIR=$(cygpath -ma "${0}"/../)

> (I didn't write this script but I assume they did this for performance reasons.)

Glad you didn't... Because otherwise you would be the one to blame for the
problem.
$0 could easily NOT have any path, just a script name.

> But anyway, as you can see ${0} always exists.

Only theoretically.
Practice is that noone will bet a buck on it.

> I looked at the other thread but don't see an immediate connection as
> that was checking for non-existing path members.

If you want to obtain a full name of a running script, you'd need something
like this:

XXX="$(cygpath -au "$0")"
SCRIPT_NAME="$(readlink -fn "${XXX:-$0}")"

This is almost platform-independent, even. To the extent of readlink -f option
support.


--
WBR,
Andrey Repin (anrdaemon@yandex.ru) 17.09.2013, <00:19>

Sorry for my terrible english...


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list