2016-05-17 23 views
3

我想要做这样的事情无论是这些语句的,这可能是诸如bash,但收到的错误:如何否定鱼壳中if语句的程序错误代码?

if ! prog ... 
    .... 

错误:fish: Unknown command '! prog ...'

if test ! prog ... 
    .... 

错误:test: Expected a combining operator like '-a' at index 2

回答

7

您正在寻找的not关键字:

if not false 
    echo Foo 
end 
+0

我只是碰到了今晚再次,并没有意识到,在第一..不完全是我想这是什么取代了'test'命令,但只是在这里注意到这一点。 – Pysis

0

结束时只使用$status

if test "$status" != "0" 
    ... 

我不喜欢单独从我检查它的错误代码在未来意外代码维护情况下,语句插入之间其他语句,甚至几乎无害的echo,但我无法找到另一种方式在测试线上使用程序调用来获得我想要的否定状态。

我想我可以包装一些'状态'和否定逻辑到一个函数,但这只是看起来更多的工作,我希望我缺少一个更简洁的语法作为条件语句。