Portable shell code between Cygwin and Linux

Eliot Moss moss@cs.umass.edu
Mon Aug 8 02:07:00 GMT 2011


On 8/7/2011 9:16 PM, Sven Köhler wrote:
> Am 30.07.2011 14:14, schrieb Andrey Repin:
>> Greetings, Corinna Vinschen!
>>
>>>> For every shell code that I write, I'd like it to be portable both to Cygwin
>>>> on Windows, and to Ubuntu Linux for example.
>>>>
>>>> It's kinda possible, but am blocked with such a use case:
>>>>
>>>> alias vpnup='exec sudo openvpn --config ~/config/client.vpn --writepid /tmp/openvpn.pid&'
>>>>
>>>> While this worked perfectly under Ubuntu, I've had to make up a customized
>>>> version for Windows:
>>>>
>>>> alias vpnupwin='cd c:/home/sva/config; openvpn --config client.vpn --writepid c:/cygwin/tmp/openvpn.pid&'
>>
>>> Don't use Win32 paths.  Use POSIX paths:
>>
>>>    alias vpnupwin='cd /cygdrive/c/home/sva/config; openvpn --config client.vpn --writepid /cygdrive/c/cygwin/tmp/openvpn.pid&'
>>
>> Moreover, the very first line is wrong.
>>
>> Must be
>>
>> alias vpnup='exec sudo openvpn --config $HOME/config/client.vpn --writepid /tmp/openvpn.pid&'
>>
>> that's where his problem began, IMO.
>
> I don't know, why you pointed that out. It's of no use to feed a path
> like $HOME/something to a pure win32 binary.
> (Certainly, this hint is kind of important for the ubuntu version of the
> script, but not for the cygwin issue, which is solely because he's
> mixing cygwin and win32 and expects it work without any complication)

The OP *was* seeking uniform scripts between cygwin and ubuntu, but where
some of the programs invoked under cygwin are Windows programs (which
therefore need Windows paths, etc.).  But in any case, setting up
suitable environment variables, aliases, etc., in a section of setup
scripts that tests uname seems to be the agreed advice, along with
specifics concerning cygpath and settings for particular programs ...

Best wishes -- Eliot moss

--
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