grepの出力を失敗させる方法は?

grepの出力を失敗させる方法は?

私はキーワードを検索し、結果を端末に表示するためにif-elseステートメントを使用しています。ここに私のコードサンプルがあります。

read finding

if ["$finding" != "" ]; then
   grep $finding information.txt
else
   echo "No such information in database."
fi

ところで、存在しない情報を入力すると、端末には何も表示されません。私は約1週間前にシェルを使い始め、いくつかのコードがどのように機能するかについてもう少し説明する必要があるかもしれません。

ベストアンサー1

  • その後にスペースを追加してください[(コマンドです)
  • -n文字列の長さがゼロでないかテストするか、ゼロであるかを-zテストするために使用されます。
  • 変数の周りに二重引用符を追加する

だから:

read finding

if [ -z "$finding" ]; then
    echo "You didn't enter anything"
else
    grep "$finding" information.txt
    if [ ! "$?" -eq 0 ]; then
        echo "No such information in database."
    fi
fi

おすすめ記事