私は間の違いを知っています対話型/非対話型そしてログイン/非ログイン殻はありますが、実際には決してそうではないようです。いいえ- インタラクティブログインスクリプトのようなものがない場合は、シェルを使用してください/bin/bash --login some-script.sh
(少し奇妙に見えます)。これは正しいですか、それとももっと一般的ですか?
ベストアンサー1
ログイン対非ログイン、対話型対非対話型BashシェルのBashの概念について話しているとします。祈るマンページセクション。 (説明とは異なります。ジェームズ・ヨンマンの答え「シェル」(またはユーザーコマンドソルバー)として使用される任意のコマンドpasswd(5)
ファイルとプログラムがユーザー入力を許可するかどうか(たとえば、/usr/sbin/nologin
明らかにそうではありません)
あなたは正しいです。これは/bin/bash --login some-script.sh
おそらく、病理学的な例である可能性がある非対話型ログインBash呼び出しを生成します。非対話型ログインシェルが発生することはまれですが、驚くべきことではありませんssh somehost < some-file
。実行コマンドが与えられず、sshd
Bashを起動するように設定して、Bashをログインシェルと考えさせます。ただし、stdinが端末に接続されていないため、Bashはそれ自体が対話型モードに設定されません(含まれていません)。 )。argv[0]
-bash
$-
i
ssh somehost somecommand
(個人的には、このシナリオは新しいログインですが、「ログインシェル」とは見なされない反対のシナリオよりも合理的に見えますsomehost
。)
ずっと前にやるべきことを最近やって、実行用のBashモードテーブルと初期化ファイル。これが混乱していると思っても心配しないでください。少なくとも私もそうでした。私を混乱させるのは、彼らの元の意図がいつ.bashrc
それをすべきかという規則を持つことでした。