質問: 「-c」オプション文字列の後に引数を指定してbash「-c」オプションを使用できないようです bashのmanページには、-cオプションに関して次のように書かれています。 -c string -cオプションが存在する場合、コマンドはstringから読み取られます。文字列の後に引数がある場合、それらは$0で始まる位置パラメータに割り当てられます。 したがって、その説明があれば、このようなものが機能するはずだと思います。bash -c "echo arg 0: $0, arg 1: $1" arg1 ただし、出力には次のように表示されるため、-c文字列の後の引数が位置パラメータに割り当てられていないように見えます。arg 0: -bash, arg 1: 私はかなり古いbashを実行しています(fedora 4で): [root @ dd42 trunk] #bash --version gnu bash、バージョン3.00.16(1)-リリース(i386-redhat-linux-gnu)copyright(c)2004 free software foundation、株式会社. 私は実際に、引数を使用してシェルスクリプトを少し実行しようとしています。 -cは非常に有望に見えると思ったので、上記の問題が発生しました。 evalを使用することを考えましたが、evalに続くものに引数を渡すことはできないと思います。私は他の提案も受け入れています。
回答: 文字列内の「$0」と「$1」は、それぞれ変数#0と#1に置き換えられるためです。試してみてください:bash -c "echo arg 0: \$0, arg 1: \$1" arg0 arg1このコードでは、両方の$がエスケープされているため、ベースはそれを文字列$と見なし、置き換えられません。このコマンドの結果は次のとおりです。arg 0: arg0, arg 1: arg1お役に立てれば。