X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org From: "Andy Hall" To: References: <80hb65b3ue DOT fsf AT somewhere DOT org> <20110729201651 DOT GB13084 AT calimero DOT vinschen DOT de> <80ipqhljc3 DOT fsf AT somewhere DOT org> <80hb60m25t DOT fsf AT somewhere DOT org> <4E381A7C DOT 2000000 AT cs DOT umass DOT edu> Subject: RE: Portable shell code between Cygwin and Linux Date: Wed, 3 Aug 2011 09:23:23 -0700 Message-ID: <3FAC9682F3BB461CBF853C3127F5A8CE@ahallpc> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit In-Reply-To: X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com > * Eliot Moss (Tue, 02 Aug 2011 11:40:44 -0400) > > On 8/2/2011 8:24 AM, Sebastien Vauban wrote: > > > Thorsten Kampe wrote: > > >> * Sebastien Vauban (Mon, 01 Aug 2011 08:46:52 +0200) > > >>> My goal is to have just 1 alias that would work both under Win32 > > >>> (Cygwin) and Ubuntu > > >> > > >> Why don't have simply put your alias definitions in if [[ $OSTYPE = > > >> cygwin ]]; then else"? > > > > > > Because I really want one single definition which could work on > > > every system I'm using. > [...] > > The suggestion to use a few conditionals that look at the which OS > > you're on does not involve continued tweaking. Once you have the right > > file, it works everywhere (for which you have provided suitable cases) > > using the exact same file. It's just that different parts get executed > > on different platforms. It's not as elegant as achieving an > > arrangement with no conditionals, but it's practical and flexible. > > Couldn't have said it better. Cygwin is not Linux and you just can't > ignore the differences. For example I have different aliases for netstat > and ps on Linux and on Windows. They just don't have the same options. > > Thorsten > I second this. I have used that same technique since the late 80s to build scripts that run on multiple platforms including Cygwin, Linux, Solaris, HP-UX and AIX. You can cover up all sorts of differences that way. Its about the only clean way of dealing with platform specific differences. And sadly, you may even have to stick with /bin/sh if you really want to be portable. Andy Hall -- 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