Re: Korn shell question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Apr 16, 2008 at 10:37 AM, Don Russell
<fedora@xxxxxxxxxxxxxxxxxxxxx> wrote:
>
>
>
>
>
>
> On Wed, Apr 16, 2008 at 8:44 AM, Patrick O'Callaghan <pocallaghan@xxxxxxxxx> wrote:
>
> >
> >
> > On Wed, 2008-04-16 at 10:41 -0400, Bill Davidsen wrote:
> > > Patrick O'Callaghan wrote:
> > > > On Tue, 2008-04-15 at 10:49 -0700, Don Russell wrote:
> > > >> How can I tell, from a Korn shell script, if the script is running in
> > > >> a vi sub-shell?
> > > >>
> > > >> I have a script that has a problem when run from a vi subshell, and
> > > >> I'd like to check for that condition and just issue an error message.
> > > >> (I know that's not the solution to the problem, but the thing that
> > > >> fails is being replaced, so this is a temporary "fix")
> > > >
> > > > Try:
> > > >
> > > > ls -l /proc/`cat /proc/$$/status|grep PPid|cut -f2`/exe
> > >
> > > What on Earth are you doing here?
> > > 1) unless you have some reason to doubt the value of $PPID, you are just
> > >     making this look complex
> > > 2) if this is a login shell, you will not have permission to read the
> > >     exe symbolic link.
> > > 3) you probably just want to see if /proc/$PPIC/cmdline matches vi
> >
> > Duh, yes. The OP wants to know if his script is being executed from
> > 'vi'. That's one way to do it. You're right about the permissions of
> > course, my bad, but using $PPID doesn't change that in the script.
> >
> > Here's a better one:
> >
> > ps -p $PPID -o comm=
> >
> >
>
> That's GREAT! It's exactly what I need.... and bonus points for it working on other platforms too ;-)

I spoke too soon... I had to tweak it a little.... since running the
script starts a new shell, it's not enough to look at the parent... I
have to go back a generation further to look at the Grand Parent
PID...

Thus, in the script that cares about such things...

GPPID=`/usr/bin/ps -p $PPID -oppid=`
if [[ "LOGINSHELL" != `/usr/bin/ps -p $GPPID -o comm=` ]]; then
     print "$0 not allowed from sub-shell" >&2
     exit 1
fi

Of course the LOGINSHELL literal could be system specific...

-- 
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [Fedora Magazine]     [Fedora News]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Maintainers]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [Fedora Fonts]     [ATA RAID]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [SSH]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Tux]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Asterisk PBX]     [Fedora Sparc]     [Fedora Universal Network Connector]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux