I actually want to know both these things since shells behave differently based on whether they are login or non-login, and/or interactive, non-interactive. See the following from the bash man page for an example (bash 3.2):

When bash is invoked as an interactive login shell, or as a non +-interactive shell with the --login option, it first reads and execu +tes commands from the file /etc/profile, if that file exists. A +fter reading that file, it looks for ~/.bash_profile, ~/.bash_login, +and ~/.profile, in that order, and reads and executes commands from + the first one that exists and is readable. The --noprofile option +may be used when the shell is started to inhibit this behavior. When a login shell exits, bash reads and executes comman +ds from the files ~/.bash_logout and /etc/bash.bash_logout, if the fi +les exists. When an interactive shell that is not a login shell is started, + bash reads and executes commands from ~/.bashrc, if that file exis +ts. This may be inhibited by using the --norc option. The --r +cfile file option will force bash to read and execute commands from f +ile instead of ~/.bashrc. When bash is started non-interactively, to run a shell script, +for example, it looks for the variable BASH_ENV in the environme +nt, expands its value if it appears there, and uses the expanded +value as the name of a file to read and execute. Bash behaves as if +the following command were executed: if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi but the value of the PATH variable is not used to search for th +e file name.

So your link is useful for solving the interactive, non-interactive part of the puzzle, but I'm still keen to know how to solve the login/non-login part of the puzzle.

Thanks for the link.


In reply to Re^2: How do I test if my Perl script was run using a login vs a non-login shell by paulski82
in thread How do I test if my Perl script was run using a login vs a non-login shell by paulski82

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.