首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于bash补全的‘'have’关键字

用于bash补全的‘'have’关键字
EN

Stack Overflow用户
提问于 2012-10-14 00:59:25
回答 1查看 4.7K关注 0票数 19

have是bash中的关键字吗?或者bash完成脚本使用的语言不是bash?

代码语言:javascript
复制
have gcc &&
_gcc()
{

这是很常见的。请参阅:grep "have .* &&" /etc/bash_completion.d/*

我找不到任何关于我看过的bash完成教程的信息,我在man bash中也找不到任何信息。在谷歌上搜索“有”也很困难。我在哪里可以找到关于这方面的文档?

我猜这与确保PATH中存在gcc有关

编辑:是。/etc/bash_completion包含:

代码语言:javascript
复制
have()
{
    unset -v have
    # Completions for system administrator commands are installed as well in
    # case completion is attempted via `sudo command ...'.
    PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin type $1 &>/dev/null &&
    have="yes"
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-14 01:05:48

have_have只是在基本bash_completion文件中定义的两个函数。在这两者之间,它们在内置的type命令周围形成一个包装器,以确定特定的命令/程序是否可用。

代码语言:javascript
复制
# This function checks whether we have a given program on the system.
#
_have()
{
    # Completions for system administrator commands are installed as well in
    # case completion is attempted via `sudo command ...'.
    PATH=$PATH:/usr/sbin:/sbin:/usr/local/sbin type $1 &>/dev/null
}

# Backwards compatibility for compat completions that use have().
# @deprecated should no longer be used; generally not needed with dynamically
#             loaded completions, and _have is suitable for runtime use.
have()
{
    unset -v have
    _have $1 && have=yes
}
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12874920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档