相关疑难解决方法(0)

关键字、保留字和内置字之间的区别?

Make bash use external `time` 命令而不是 shell built-in,Stéphane Chazelas 写道:

没有time内置 bash。time是一个关键字,所以你可以做例如time { foo; bar; }

我们可以验证一下:

$ type -a time
time is a shell keyword
time is /usr/bin/time
Run Code Online (Sandbox Code Playgroud)

它没有显示time可以是内置命令。

  1. “关键字”的定义是什么?
  2. “关键字”与“Bash 参考手册”中的“保留字”是同一个概念吗?

    保留字

    一个对壳有特殊意义的词。大多数保留字都引入了 shell 流控制结构,例如forwhile

  3. 关键字是否一定不是命令(或不是内置命令)?

    作为关键字,是time不是命令(或不是内置命令)?

    根据关键字和内建的定义,为什么time 不是内建而是关键字?

  4. 为什么“你可以做例如time { foo; bar; }”因为“time是一个关键字”?

bash

11
推荐指数
1
解决办法
4584
查看次数

为什么 Bash 将 time 实现为保留字而不是内置字?

Bash 参考手册说

使用 time 作为保留字允许对 shell 内置函数、shell 函数和管道进行计时。外部时间命令无法轻松地对这些进行计时。

  1. 但它只比较了保留字time和外部命令 time,并没有解决这个问题:

    为什么 Bash 实现time为保留字,而不是内置命令?

    这能带来什么好处?

  2. 还有哪些保留字也可以作为(内置或外部)命令实现?他们与指挥同行相比有什么优势?(试图弄清楚他们的优势是共享的还是特定于每个人的)

    例如,

    • 保留字[[...]]与内置命令test[
    • 保留字select与内置命令read

bash time-utility

0
推荐指数
1
解决办法
760
查看次数

标签 统计

bash ×2

time-utility ×1