-1

はっきりさせておきます。

いくつかの引数を取る bash スクリプトを作成しました。最初に引数を commandpsに渡します。次に例を示します。

$ ./myscript.sh -wef | egrep ".*somethingtomatch.*"

スクリプトは に渡さ-wef | egrep ".*somethingtomatch.*"ps、 の結果を生成しますps -wef | egrep ".*somethingtomatch.*"

その後、スクリプトの残りの部分が別の処理を実行し、画面に別の出力が表示されます。

ただし、bash への元の入力は$ ./myscript.sh -wef | egrep ".*somethingtomatch.*"であったため、スクリプトからの他の出力はegrep.

これらの他の出力を表示し、元の入力形式を維持するにはどうすればよいですか-余分な引用符やその他の記号を追加したくありません$ ./myscript.sh -wef | egrep ".*somethingtomatch.*"

どうもありがとう!

4

2 に答える 2

0

ネイキッド パイプ ( ) を引数として使用することはできません。|限目。のようにエスケープする必要があります\|。したがって、呼び出しにシンボルを追加したくない場合、唯一の解決策は、別のシェルを作成するか、パイプする別の文字で bash を構築することです....

于 2012-06-18T20:54:49.687 に答える
0

スクリプトはに渡さ-wef | egrep ".*somethingtomatch.*"ps、の結果を生成しますps -wef | egrep ".*somethingtomatch.*"

いいえ、それは に渡さ-wefps、プログラムの出力を にパイプしますegrep ".*somethingtomatch.*"

構文を変更したくないので、問題の解決策はありません。制約を緩和します。

最も簡単な方法は、2 番目の引数として渡すことです: ./myscript.sh -wef somethingtomatch.

于 2012-06-18T20:53:51.343 に答える