Xref: utzoo comp.sys.att:10031 unix-pc.general:5799 Path: utzoo!utgpu!watserv1!watmath!uunet!snorkelwacker!spdcc!gnosys!gst From: gst@gnosys.svle.ma.us (Gary S. Trujillo) Newsgroups: comp.sys.att,unix-pc.general Subject: Re: bang problems in vi Message-ID: <756@gnosys.svle.ma.us> Date: 20 Jul 90 22:58:28 GMT References: <37112@shemp.CS.UCLA.EDU> <1990Jul20.032240.29834@cbnewsj.att.com> Reply-To: gst@gnosys.gnosys.svle.ma (Gary S. Trujillo) Organization: gst's 3B1 - Somerville, Massachusetts Lines: 37 In article <1990Jul20.032240.29834@cbnewsj.att.com> avr@cbnewsj.att.com (adam.v.reed) writes (in connection with running interactive stuff only when standard input is coming from a tty): > case $- in *s* | *i* ) > # your interactive stuff, stty etc., goes here > ;; > esac > > Adam_V_Reed@ATT.com Can you explain what's going on here? Looks as if the arg string sent to the forked ksh contains a "s" or an "i" if the shell is interactive. Why is that? My solution comes from something posted a couple of years ago. In your .profile, stick the lines: START=~/.kshrc ENV='${START[(_$-=1)+(_=0)-(_$-!=_${-%%*i*})]}' Then you put commands in your .kshrc that you want to have executed iff the shell is running interactively. (Please don't ask me what the "ENV=..." command means, but I can dig it up from the original message if enough folks really want to know. I think the idea is that the ENV environment variable, which tells ksh where to read commands from when it starts up, either gets set to ~/.kshrc or to the null string, depending on some stuff that determines whether the shell is running interactively or not.) -- Gary S. Trujillo gst@gnosys.svle.ma.us Somerville, Massachusetts {wjh12,spdcc,ima,cdp}!gnosys!gst