所有命令 shell 脚本是否有通用名称?

Is there a common name for all command shell scripts?

我经常发现自己需要描述一个可以在所有主要 shell 解释器(ksh、bash、sh)上执行的简单 Linux 命令,但我没有知道如何表示。一些示例是:lscdcp.

具体来说,我想在不特别提及任何 shell 的情况下发言。在 SQL 上下文中,这很简单:"SQL" 指的是所有风格(Oracle、MSSQL 等)之间的共享标准。 SO 似乎认为该术语是 "shell",但即使它要求您使用更具体的 shell 标记,这意味着没有可行的共享功能。

Unix/Linux 命令 shell 之间的所有共享语法是否有名称,或者根本不存在?

lscdcp 都是 POSIX 调用 utilities 的实例。

实用程序可能是外部(文件系统中的可执行文件)或内置- in(shell 内部)。

一些实用程序既作为 regular shell built-in 也作为外部实用程序(例如 test)存在。
此外,还有 special built-in utilities(例如 .),它们仅在 shell 内部。

从更广泛的角度来看,您可以称它们为 POSIX / [标准] Unix [命令行] 实用程序.

POSIX 要求 what utilities are part of the standard 向下滚动到链接页面上的要点 Utilities (必须出现在构造系统上)以及它们必须支持的特定 选项 和它们必须表现出的行为。

实际平台通常是它的 超集 - 无论是在提供非标准实用程序方面,还是在让标准实用程序支持额外的非标准选项方面。

要引用 标准化 shell 语言语法 ,您可以使用术语 [POSIX] shell command language,尽管简写 sh/bin/sh 被频繁使用,基于这样一个事实,即类 Unix 系统上的默认 shell 只能期望实现 POSIX 强制的功能(仅此而已)。


请注意,内置 实用程序是一个 shell 特定概念(以及一个 POSIX-兼容 shell 必须支持 POSIX shell 语言规范中指定的选项和行为。
当不涉及 shell 时,例如使用 xargsfind ... -exec.

时,不能(直接)调用它们

相比之下,外部 实用程序独立于 shell 存在,尽管它们通常是 从 shell.

调用