如何否定fish shell中if语句的程序错误代码?

时间:2016-05-17 14:26:28

标签: shell fish

我想做一些像这些语句中的任何一个,可能就像bash一样,但收到了错误:

if ! prog ...
  ....

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

if test ! prog ...
  ....

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

2 个答案:

答案 0 :(得分:7)

您正在寻找not关键字:

if not false
   echo Foo
end

答案 1 :(得分:0)

仅使用$status结束。

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

我不想将语句与我检查其错误代码的位置分开,以防将来意外的代码维护插入其他语句,即使与echo几乎无害,但我找不到另一种在测试线上使用程序调用来获得我想要的否定条件的方法。

我想我可以将其中一些状态包括在内。并且将逻辑否定为一个函数,但这似乎更多的工作,并且我希望我错过了一个更简洁的语法作为条件语句。