shell 从Fish脚本检查程序是否存在

9jyewag0  于 2023-06-24  发布在  Shell
关注(0)|答案(1)|浏览(106)

如何检查fish脚本中是否存在程序?
我知道Bash没有绝对的解决方案,但是使用if type PROGRAM >/dev/null 2>&1; then...得到了很好的结果。
有没有类似的鱼?

rjjhvcjd

rjjhvcjd1#

type -q,如

if type -q $program
     # do stuff
end

如果某个东西是一个函数,内置或外部程序(即,如果它是fish将执行东西)。
还有

  • command -q,仅当它作为外部程序存在时才返回0
  • builtin -q,仅当它是一条内置鱼时返回0
  • functions -q,仅当它是fish函数时返回0

对于所有这些,“-q”标志会使所有输出静默,只查询是否存在。
例如,如果builtin -q返回true,那就意味着它也是一个内置函数--它仍然可以是一个函数或命令。
command -q从fish 3.1.0开始工作,因为-q标志意味着-s,而不是command -sq

相关问题