コンピュータの電源を入れた後に最初にシェルが呼び出されるのはログインシェルですか、それとも非ログインシェルですか? [コピー]

コンピュータの電源を入れた後に最初にシェルが呼び出されるのはログインシェルですか、それとも非ログインシェルですか? [コピー]

私はログインシェルと非ログインシェルについて言及したいくつかの記事を読んでいますが、
それでも混乱しています。
ログインシェルと非ログインシェルの違いは何ですか? - UnixとLinuxスタックの交換
UNIXの考え方:ログインシェルか、非ログインシェルですか?

簡単に言えば、
私のコンピュータが起動したときに起動されるシェルはログインシェルではありませ
んか、それとも非ログインシェルではありませんか?

    $ echo $SHELL
    /bin/bash
    $ echo $0
    -bash

また、プログラムから呼び出されたシェルがログインシェルかどうかを確認するのに役立ちますか?

    import subprocess
    subprocess.run('ls -l', shell=True)

ベストアンサー1

で述べたようにこの回答:

prompt> echo $0
-bash # "-" is the first character. Therefore, this is a login shell.

したがって、最初の例はログインシェルを示しています。

同じ回答でも指摘したように、

man bash(検索通話)で情報を確認できます。以下は抜粋です:

ログインシェルの引数の最初の文字は0または-オプションで始まります--login

そしてからPythonドキュメント:

... Popenは次のとおりです。

Popen(['/bin/sh', '-c', args[0], args[1], ...])

提供される唯一のオプションは、-cログインシェルではありません。

おすすめ記事