Bash呼び出しを表示する別の方法

Bash呼び出しを表示する別の方法

このオプションが何を意味するのか理解していないか、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

これは人工的な例ですが、より複雑なスクリプト(区切り文字を含む!)の場合に便利です。

おすすめ記事