检查Fish脚本中是否存在程序

azm*_*euk 11 shell fish

如何检查鱼脚本中是否存在程序?

我知道Bash没有绝对的解决方案,但使用if type PROGRAM >/dev/null 2>&1; then...效果很好.

有类似鱼的东西吗?

fah*_*aho 28

还有type -q,如

if type -q $program
     # do stuff
end
Run Code Online (Sandbox Code Playgroud)

如果某个东西是函数,内置函数或外部程序(即如果它是fish将执行的东西),则返回0.

还有command -sq,只有当它是外部程序时才返回0.

对于这两者," - q"标志使所有输出静音.对于命令," - s"使它只查找命令而不是直接执行它.