[NCLUG] Ubuntu 8.04 - CLI mode

Mike Loseke mike.loseke at gmail.com
Fri Aug 8 14:58:06 MDT 2008


On Fri, Aug 8, 2008 at 2:18 PM, Bob Proulx <bob at proulx.com> wrote:

> Rob Bayerl wrote:
> > > CAD vendor is in love with csh scripting.  They write #!/bin/csh
> > > scripts as glue wrappers around their tools.  They assume that the
> > > user is running [t]csh.
> >
> > Maybe I'm confused but isn't the purpose of the wrapper to ensure the
> > script is parsed by the required tool, independent of the running
> > shell?
>
> If they had done things better then that would be true.  But instead
> they insist upon the user sourcing scripts written in csh to perform
> actions and to set up environment variables and therefore they break
> the encapsulation layer.  It isn't impossible to run Cadence and
> Synopsys tools without also running csh (I ran bash and everything can
> be made to work fine) but if you do then you need to be able to be
> self-supported at debugging the issues and comfortable at modifying
> the vendor's scripts and patching them when they are updated.
>

For most EDA/CAD tools, the wrappers are there to make it easier for the
user to start and run the tool.  Before the wrappers were common, users
needed to modify their own shell environment to run the tools.  The reason
most engineers in a shop use the same shell - regardless of flavor - is that
the overall environments aren't as simple as having PATH set and users
basically wind up asking each other "can I copy your startup files?"

Some of the environment requirements are fairly extensive and some vendors
are better than others are making it all as easy as possible.  Some don't.
There's nothing special about the wrappers really, they're just trying to
make sure the tool is started with the necessary environment, like license
server information, LD_LIBRARY_PATH and like tool-specific settings.

Start combining multiple tools into a workflow and you begin to have a
fairly complex shell environment.  If you stick with an un-modified tcsh,
you'll soon run into the low variable length and buffer limits.  1024
characters in a variable value might be good enough for POSIX but not for
getting work done in a complex workflow.

I've seen 99% tcsh shops and 99% ksh shops with users in the thousands and
survived them all.  Well, maybe not the ksh shop. ;-)



More information about the NCLUG mailing list