in reply to How do I test if my Perl script was run using a login vs a non-login shell

What is the difference?

Call perl from that program, giving it whatever indicator you need  exec "perl", "...file.pl", "--", "--withfoobar";

  • Comment on Re: How do I test if my PERL script was run using a login vs a non-login shell
  • Download Code

Replies are listed 'Best First'.
Re^2: How do I test if my Perl script was run using a login vs a non-login shell
by paulski82 (Novice) on May 23, 2012 at 03:53 UTC
    The difference is that this login shell will be installed on 600 odd servers with different operating systems and I don't want to manage compiling C code across different operating systems.

      The difference is that this login shell will be installed on 600 odd servers with different operating systems and I don't want to manage compiling C code across different operating systems.

      :) You'll notice my question came before my suggestion, it wasn't about my suggestion

      Let me elaborate, what is the difference between using a login vs a non-login shell? What effect does it have upon the execution of a program? Does it set some variables?

      I doubt the only effect is a dash in ARGV

      You could probably examine some perlvar or some POSIX call, but you'd have to know more about what su does -- I don't know too much about su.

        Login shells typically do different things than non-login shells. For example, the bash shell will behave differently in terms of what user environment scripts it parses and what environment variables it sets, depending on whether it was run as a login or non-login shell, as well as whether it was run in interactive or non-interactive mode (also a command line argument).

        Depending on how it's called, my shell script needs to do different things.