Bashマニュアルから
bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o option] [-O shopt_option] -c string [argument ...]
-c
コマンドの読み取りと実行オプションではない最初のパラメータ オプションを処理して終了します。残りのパラメータで始まる位置引数に割り当てられます$0
。
-c
オプションはオプションパラメータを使用しますか、またはオプションパラメータを使用しませんか?オプションパラメータが必要なようです。-c
「コマンドの読み取りと実行」と言うのはなぜですか?オプションではない最初のパラメータ「代わりにオプションパラメータから-c
」?たとえば、次のコマンドで
mycommand
のオプションパラメータはですか、それとも?の非オプションパラメータですか?-c
bash
bash
bash -c mycommand
する」残りのパラメータ
bash
"は?のオプションではないすべてのパラメータを表します。次のコマンドでは、オプションではなく引数と
arg1
コマンドライン引数をarg2
渡してbash
使用するのが正しいですか?bash
mycommand
mycommand
bash -c mycommand arg1 arg2
次の2つのコマンドは同じですか?それらの違いは何ですか?
bash -c mycommand arg1 arg2 bash -c 'mycommand arg1 arg2'
ありがとうございます。
答え1
-c
「オプション引数で」の代わりに「オプションではなく、最初の引数でコマンドを読み込んで実行する」と言うのはなぜですか-c
?例えば、
bash -c mycommand
mycommand 'はbashオプション-cのオプションパラメータですか、それともbashの非オプションパラメータですか?
これはオプションではないパラメータですbash
。これを確認するには、その間にさらにオプションを追加するだけです。
bash -c -i 'echo 1'
存在する
bash -c mycommand arg1 arg2
bashのオプションではなく、引数arg1とarg2がbashによってmycommandに渡され、mycommandのコマンドライン引数として使用されます。
いいえ、もう一度お試しください。
bash -c echo arg1 arg2
次の2つのコマンドは同じですか?それらの違いは何ですか?
bash -c mycommand arg1 arg2 bash -c 'mycommand arg1 arg2'
それらは同じではありません。一つ、mycommand arg1 arg2
ランニング。別の実行では、mycommand
Bashは自分自身を呼び出しarg1
ます。$1
arg2
これらすべての問題は少し努力すれば解決されるようです。