このオプションが何を意味するのか理解していないか、bashがオプションなしで同じように動作するようです(標準入力を読み取る対話型シェル)。いつこれらのオプションを明示的に使用したいですか?
ベストアンサー1
Bash呼び出しを表示する別の方法
リファレンスマニュアルはすでに非常に詳細に説明されています。説明するBashを呼び出す方法について。しかし、私は少し異なる方法で記録することを好みます。
bash <options> <script_file> [<arguments>]
bash <options> -c <command_string> [<arguments>]
bash <options> [-s [<arguments>]
最初の2つは非対話型なので、関連する機能(プロンプト、ジョブ制御、コマンド履歴...)はありません。ただし、これらの機能が必要な場合は、-iフラグを使用して強制できます。
3番目は対話型で、オプションの-sフラグは次の段落で意味があります。
パラメータの指定
例1:基本
-sオプションを使用してパラメータを指定できます。
bash -s a b c
シェルの起動... このシェルでパラメータを確認できます。
echo $1 $2 $2
bashコマンドのパラメータを反映します。
a b c
"-s"オプションがない場合、最初の位置引数はファイル名として解釈されます。
bash a b c
与えられた
bash: a: No such file or directory
例 2: 区切り記号の使用
以前に使用された -s オプションを使用して、区切り文書に引数を指定できます (コマンドを含めるためにファイルを使用したくない場合)。
bash -s a b c <<'EOC'
echo $1 $2 $3
EOC
以下を提供します。
a b c
bashコマンドはheredocのコマンドを実行して終了します。これにより、bashコマンドを呼び出したシェルに戻ります。
例3:パイプライニング
(一部のインラインスクリプトを実装する必要がある場合)パイプラインにbashを含めることを検討し、パラメータの提供の機会を再利用してください。
echo 'echo HELLO $1' | bash -s WORLD
以下を提供します。
HELLO WORLD
これは人工的な例ですが、より複雑なスクリプト(区切り文字を含む!)の場合に便利です。