gpt4 book ai didi

linux - 带有否定条件的 if 语句

转载 作者:太空宇宙 更新时间:2023-11-04 09:45:40 25 4
gpt4 key购买 nike

我正在尝试制作以下 if 语句

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

所以当第一个命令没有返回任何东西而第二个返回true时,它应该被执行。

如果我尝试

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

那我就不能不让它失败。它总是打印ok

问题

谁能看出我做错了什么?

最佳答案

我能够让它输出 ok 的唯一方法是 zfs 报告 secure$days 包含 $day。任何其他组合(即 zfs 未报告 secure 或 $daysnot containing$day`)没有产生任何输出。

因为我没有zfs,所以我定义了一个函数:

function zfs () { echo secure ; } ; days=1; day=1; if ! zfs list -t snapshot -o name -H | grep -q secure && echo $days | grep -q "$day" ; then echo ok; fi
function zfs () { echo securX ; } ; days=1; day=1; if ! zfs list -t snapshot -o name -H | grep -q secure && echo $days | grep -q "$day" ; then echo ok; fi
function zfs () { echo securX ; } ; days=0; day=1; if ! zfs list -t snapshot -o name -H | grep -q secure && echo $days | grep -q "$day" ; then echo ok; fi
function zfs () { echo secure ; } ; days=0; day=1;if ! zfs list -t snapshot -o name -H | grep -q secure && echo $days | grep -q "$day" ; then echo ok; fi

function zfs () { echo secure ; } ; days=0; day=1; if ( ! ( zfs list -t snapshot -o name -H | grep -q secure) && (echo $days | grep -q "$day" ) ); then echo ok; fi
function zfs () { echo securX ; } ; days=0; day=1; if ( ! ( zfs list -t snapshot -o name -H | grep -q secure) && (echo $days | grep -q "$day" ) ); then echo ok; fi
function zfs () { echo securX ; } ; days=1; day=1; if ( ! ( zfs list -t snapshot -o name -H | grep -q secure) && (echo $days | grep -q "$day" ) ); then echo ok; fi
function zfs () { echo secure ; } ; days=1; day=1; if ( ! ( zfs list -t snapshot -o name -H | grep -q secure) && (echo $days | grep -q "$day" ) ); then echo ok; fi

关于linux - 带有否定条件的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16589061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com