当前位置: 首页 > 知识库问答 >
问题:

如何做出“如果不是真实条件”?

华锦
2023-03-14

我做错了什么?

if ! [ $(cat /etc/passwd | grep "sysa") ]; then
        echo "ERROR - The user sysa could not be looked up"
        exit 2
fi

共有1个答案

谈秦斩
2023-03-14

试试看

if ! grep -q sysa /etc/passwd ; then

grep如果找到搜索目标返回true,如果没有返回false

所以不是false==true

但是,您可以使用最新的shell特性(算术计算),例如

if ! (( $(grep -c "sysa" /etc/passwd) == 0 )) ; then ...`

这还使您可以使用基于c-lang的比较运算符==、<、>、>=、<=、%以及其他一些运算符。

在这种情况下,根据Orwellophile的注释,算术计算可以进一步缩减,如

if ! (( $(grep -c "sysa" /etc/passwd) )) ; then ....
if (( ! $(grep -c "sysa" /etc/passwd) )) ; then ....
 类似资料:
  • 本文向大家介绍knockout.js 如果/如果不是,包括了knockout.js 如果/如果不是的使用技巧和注意事项,需要的朋友参考一下 示例 您可以使用if绑定来确定是否应创建节点的子元素。 if绑定的逆是ifnot 相当于 有时,您无需创建容器就无法控制元素的存在(通常是针对中的<li>元素<ul>或中的<option>元素<select>) 淘汰赛可使用基于注释标签的无容器控制流语法来实现

  • 我想做的是,如果客户存在,更新客户,但如果没有客户,则抛出异常。但我找不到正确的流函数来实现这一点。我怎样才能做到这一点? 我无法返回save函数的值,因为它表示它是void方法,不需要返回值。

  • 问题内容: 这两行代码有什么区别: 和 一个比另一个更有效吗? 会更好用吗 问题答案: 使用一下两个版本生成的字节码: 后者的操作较少,因此效率可能会略高一些。 在致谢中指出了),您所进行的操作与操作数量完全相同,只是更改并切换为: : 在这种情况下,除非每次比较所需的工作量有所不同,否则您根本看不到任何性能差异。 但是,请注意,这两个版本 不会永远是逻辑上相同的 ,因为这将取决于实现方式和有问题

  • 问题内容: 我一直在发疯,试图使评论条件生效,但我没有运气能有人解释我做错了什么吗? 这是我的代码: 发生的事情令人沮丧地不一致。当我在 IE8中 使用上述代码加载页面时,会收到消息 “ IE 低于 版本9”, 对吗?否,因为当我在 IE10中 加载SAME PAGE时,收到消息 “浏览器不是IE” 为什么会认为IE10不是IE浏览器?我一直在逐页进行爬网,但是从我发现的代码来看,似乎没有什么错。

  • 问题内容: 在访问中,我一直试图在子窗体(检查清单)上显示的内容上设置用户过滤器。我尝试过研究的其他方法没有起作用,但是我成功使用了下面的代码,如果用户填写其他任何过滤器选项,它将进行过滤。我能弄清楚的是如何让它接受多个过滤器,除非我阐明了每种可能的组合框 因此,无论如何,这实际上是可能的,还是我需要看看其他选择? 实际上,如果表单过滤器不为空,有没有一种简单的方法可以包含条件 问题答案: 如果我

  • 问题内容: 我正在努力提高程序的性能。在改善和算法的复杂性之后,我正在尝试改善实现。我想知道在条件下如何使用该语句是否真的很重要。 编译器是否将这两个版本相同?它们的成本是否相同(如果我在语句中包含更多变量)? 要么 ( 在这个特定的项目中,我不太在意可读性,我知道第二个可读性较差 ) 问题答案: 的操作者(以及)是 短路 在Java中操作。 这意味着,如果是,Java的不评估,,等,因为它已经知