AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1512651
Accepted
user unknown
user unknown
Asked: 2024-05-03 13:39:28 +0800 CST2024-05-03 13:39:28 +0800 CST 2024-05-03 13:39:28 +0800 CST

`command echo --help` 调用 bash 内部 echo 函数

  • 772

根据help command,在 bash 的帮助下,command可以用来触发外部程序 x,如果 x 也作为内置函数存在:

command: command [-pVv] command [arg ...]
    Execute a simple command or display information about commands.
    
    Runs COMMAND with ARGS suppressing  shell function lookup, or display
    information about the specified COMMANDs.  Can be used to invoke commands
    on disk when a function with the same name exists.

当使用 进行测试时time,这按预期工作并使用外部程序/bin/time,但是当我尝试时:

command echo --help    
# the output is 
--help

这是内置的预期行为echo。

使用 xubuntu 22.04,bash 5.1.16/bin/echo --help按预期工作。

我是否误解了该command命令?或者为什么它不像宣布的那样工作?我怎样才能找到答案?

GNU bash, Version 5.1.16(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2020 Free Software Foundation, Inc.
command-line
  • 1 1 个回答
  • 263 Views

1 个回答

  • Voted
  1. Best Answer
    muru
    2024-05-03T13:49:52+08:002024-05-03T13:49:52+08:00

    它确实像宣布的那样工作:它抑制shell 函数查找,而不是内置查找。的效果time具有误导性:time是保留字,而不是内置字,并且仅出现在管道的开头。在 中command time,管道由 启动command,因此它唯一time可以执行的是外部管道。

    要查看差异,请定义一个函数:

    echo () { date; }
    

    并echo与进行比较command echo。(您可以使用 删除该功能unset -f echo。)

    要查看某物是什么,请使用type:

    $ foo () { true; }
    $ type if time [[ [ echo foo
    if is a shell keyword
    time is a shell keyword
    [[ is a shell keyword
    [ is a shell builtin
    echo is a shell builtin
    foo is a function
    foo ()
    {
        true
    }
    
    • 8

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve