アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。
現在、Linux(RHEL5)にてシェルスクリプトを組んでいるのですが、
質問があります。

以下のように"rpm -e"を組んで実行した場合、
パッケージB.rpmが存在しない場合、
画面に「エラー:パッケージBpacはインストールされていません」
と表示されてしまいます。

echo "****** Bpacの削除をしています ******"
rpm -e Bpac

画面にエラーを表示させたくないのですが、
どのようにすれば良いのでしょうか?
(Windowsのecho offのようなものはありませんか?)
なお、出だしのecho文(Bpacの削除をしています)は表示させたいのです。

何か方法はないでしょうか?
よろしくお願いします。

A 回答 (2件)

/bin/sh をお使いでしたら,



rpm -e Bpac 2>/dev/null

でどうでしょうか。エラー時に何かしたい場合は,

if rpm -e Bpac 2>/dev/null; then
  # エラーじゃないときの処理
else
  # エラーのときの処理
fi

という感じです。

この回答への補足

ありがとうございます!
無事にエラーメッセージを消すことができました。

2>/dev/null
はてっきり、外部シェルを起動する場合のみしか利用できないと思っていました。

ところで、
2>/dev/nullは、
コマンド単位ではさすがに指定できませんよね?

例えば、

chcon -R -t textrel_shlib_t /opt/AAAAAlib

のような、コンテキストの変更を行う場合、
変更対象が画面にずらっと表示されてしまいます。
これらの表示を消す場合、
やはり、このコマンドのみを記述したシェルを別途外だしにし、
2>/dev/nullしかないのでしょうか?

補足日時:2007/08/28 18:51
    • good
    • 0

補足に対する補足。


コマンド自体が出すメッセージではなくシェルが出すメッセージは
2>/dev/null
で消すことはできませんが、その行全体をサブシェルにしてしまえば
全体に 2>/dev/null をつけることで表示されなくできます。
(
                  #エラーメッセージを出したくない行
) 2>/dev/null
    • good
    • 0
この回答へのお礼

ありがとうございます!
実際に行ってみたところ、エラーメッセージを消すことができました。

シェルスクリプトとはいえ、
色々と奥が深いのですね・・・。勉強になります

お礼日時:2007/08/29 08:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています