【问题标题】:Is the shell's `source` POSIX-standard?shell 的 `source` 是 POSIX 标准的吗?
【发布时间】:2012-07-21 00:42:45
【问题描述】:

我花了一些时间在POSIX standard for the shell 中搜索source. 命令,我现在确信它们不在那里。

是否有不支持. 的shell?在当前环境中执行 shell 脚本的 POSIX 标准方式是什么(即不生成子 shell,所以如果脚本显示 export VAR=valueVAR 存在于调用 shell 中)?

我可能遗漏了一些明显的东西,但事实证明 . 对 Google 来说并不容易......

【问题讨论】:

  • C shell 系列不太可能支持 . 作为 source 的同义词,这是它们编写相同操作的本机方式。

标签: shell unix posix


【解决方案1】:

它在"dot" 下。

姓名

dot - 在当前环境中执行命令

概要

文件

[等]

【讨论】:

  • 是的,. 命令是标准的。但请注意,bash 和其他一些现代 shell 中可用的 source 别名不是 POSIX 的一部分。
【解决方案2】:

. 已标准化(POSIX 20042008)。

source 是非标准的,在ashdashpdksh 中特别不受支持(因此可能它也不在原始 Korn Shell 中)。即,这是一个 Bashism。

【讨论】:

  • C shell 使用source 而不是 Bourne shell 使用的.。 Korn shell 使用. 与 Bourne shell 兼容。它被导入bash 的原因尚不清楚,但它让C shell 迁移者有宾至如归的感觉,并且比. 更容易索引dot
猜你喜欢
  • 1970-01-01
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多