0

次のifステートメントを作成しようとしています

if (!(zfs list -t snapshot -o name -H | grep -q secure) && (echo $days | grep -q $day) )

したがって、最初のコマンドが何も返さず、2 番目のコマンドが返さtrueれた場合に実行する必要があります。

私が試したら

if ! zfs list -t snapshot -o name -H | grep -q secure && echo $days | grep -q $day; then
  echo ok
fi

それから私はそれを失敗させることはできません。常に印刷されokます。

質問

誰かが私が間違っていることを見ることができますか?

4

2 に答える 2

1

これは答えではなく回避策ですが、次を使用してテストの意味を逆にすることができgrepます-v

if zfs list -t snapshot -o name -H | grep -qv secure && echo $days | grep -q $day; then
  echo ok
fi

zfs list -t snapshot -o name -Hただし、何も返さない場合はまったく同じではありません。

于 2013-05-16T13:54:20.240 に答える