2011-07-22 9 views
0

シェルスクリプトを呼び出すCでプログラムを実行しています。スクリプトは時々エラーを表示します(SIOCSARP: Invalid argument) エラーは本当に重要ではなく、プログラムがローカルIPを追加しようとしたときに発生しますが、ここでは重要ではありません。標準出力をカットするC linux

ここでLinuxの出力をシェルにカットする方法はありますか?

シェルスクリプトコード:スクリプトを実行

#!/bin/sh 
arp -s $1 $2 

sprintf(script, "/home/add_arp.sh %s %s", tableI[i].IPaddr, tableI[i].MACaddr); 
system(script); 

おかげ

+0

? – taskinoor

+0

'./myscript 2>&1>/dev/null'はすべての出力を抑制します。 –

+0

あなたは「シェルへの出力をすべてカットする」というより具体的なことができますか? – multipleinterfaces

答えて

1

あなたが見ている出力は標準エラーではなく標準出力上にある場合は、使用することができます:

arp -s $1 $2 2>/dev/null 

これは、すべてのエラー出力をビットバケットにドロップします。そのテキストを含むすべての行を削除します

arp -s $1 $2 | grep -v 'SIOCSARP: Invalid argument' 

この:それは標準出力になるだろうし、あなたが選択したい場合は、のようなものを使用することができます。

ます。また、標準出力ストリームに標準出力とエラーを組み合わせて選択することができます:

arp -s $1 $2 2>&1 | grep -v 'SIOCSARP: Invalid argument' 

そして最後に、あなたが任意の出力表示したくない場合は:

arp -s $1 $2 &>/dev/null 

の問題について私が知りたくないと確信していない限り、私は最後のものを使っていませんが。

+0

固定。スムーズ!おかげで – shaggy

+0

ちょうど最後のものは本当に全く働いていないが、私は最初のもので大丈夫です – shaggy

0
#!/bin/sh 
arp -s $1 $2 &> /dev/null 

は出力を破棄します。

0

あなたはこのようには/ dev/nullに標準エラー出力をリダイレクトすることができます:あなたはCからスクリプトを実行しているどのように

arp -s $1 $2 2> /dev/null 
関連する問題