`bash -c mycommand arg1 arg2`のパラメータ[閉じる]

`bash -c mycommand arg1 arg2`のパラメータ[閉じる]

Bashマニュアルから

bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o option] [-O shopt_option] -c string [argument ...]

-cコマンドの読み取りと実行オプションではない最初のパラメータ オプションを処理して終了します。残りのパラメータで始まる位置引数に割り当てられます$0

  1. -cオプションはオプションパラメータを使用しますか、またはオプションパラメータを使用しませんか?オプションパラメータが必要なようです。

    -c「コマンドの読み取りと実行」と言うのはなぜですか?オプションではない最初のパラメータ「代わりにオプションパラメータから -c」?

    たとえば、次のコマンドでmycommandのオプションパラメータはですか、それとも?の非オプションパラメータですか?-cbashbash

    bash -c mycommand
    
  2. する」残りのパラメータbash"は?のオプションではないすべてのパラメータを表します。

    次のコマンドでは、オプションではなく引数とarg1コマンドライン引数をarg2渡して bash使用するのが正しいですか?bashmycommandmycommand

    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ランニング。別の実行では、mycommandBashは自分自身を呼び出しarg1ます。$1arg2


これらすべての問題は少し努力すれば解決されるようです。

関連情報