Bashのマニュアルは次のように言います:
対話型シェルは、オプション引数ではなく引数なしで始まります。-s を指定しない限り、 -cオプションを指定せずに入力と出力が端末に接続されるか(isatty(3)によって決定されます)、-iオプションで始まります。
「-sが指定されていない場合」がどこに適用されるのか疑問に思います。
- 「オプション以外の引数なし」または
- 「-cオプションを指定せずに」?
インタラクティブシェルを起動するすべての方法を列挙するために、引用符をより明確に変更できますか? (自分で始めることができることは明らかです-i
が、説明を引用する他の方法はよくわかりません。)
ありがとうございます。
ベストアンサー1
「-s
指定しない場合」とは、「オプションではない引数なし」を意味します。概要は次のbash
とおりです。
bash [options] [command_string | file]
オプション以外のパラメータはcommand_string
またはですfile
。これらのいずれかを指定した場合、特に指定しない限り、結果のシェル-s
は対話型ではありません-c
。-s
引数が解釈されるのではなく、位置引数に割り当てられるようにします。
bash -s arg1 arg2
インタラクティブシェルを開き、
echo $*
出力
arg1 arg2
したがって、次のいずれかのコマンドを使用して対話型 Bash シェルを開くことができます。
- 標準入力と出力が端末に接続されており、オプションでない引数が指定されていないことを確認してください。
- 標準入力と出力が端子に接続されていることを確認してください
-s
。-c
- 指定されました
-i
。
-c
と-s
を指定すると、-c
これが優先されます(最初に処理されます)。結果シェルは非対話型で、指定されたコマンドを処理します。