我们应该在 bash/shell 脚本中使用像 ⏰ 这样的 UTF-8 字符吗?

我们应该在 bash/shell 脚本中使用像 ⏰ 这样的 UTF-8 字符吗?

如果使用以下命令启动,这里的简单代码将在我的机器上按预期工作bash

function ⏰(){
 date
}

其他人使用这个会不会有问题,或者它是否具有普遍性?

我很想知道,因为我目前从未在其他源代码中看到过类似的东西。

编辑:有无限的可能性,它可以用于快速区分功能角色,例如使用表情符号。

A

答案1

一个有用的指南是“可移植操作系统接口”(POSIX),这是大多数类 Unix 系统实现的一系列标准。通常最好将 shell 脚本限制为 POSIX 规定的功能,以确保它们可以在不同的 shell 和平台上使用。

根据 POSIX 规范《Shell 命令语言》中的函数定义:

该函数名为fname;应用程序应确保它是一个名称(请参阅 IEEE Std 1003.1-2001 的基本定义卷,第 3.230 条,名称)。实现可以允许函数名称中的其他字符作为扩展名。

按照链接到“名字”的定义:

在 shell 命令语言中,仅由下划线、数字和字母组成的单词便携式字符集

该字符集仅包含 U0000 和 U007E 之间的字符。
因此,像“⏰”(U23F0) 这样的字符在符合 POSIX 标准的标识符中无效。

你的shell 可能会接受它们,但这并不能保证其他的也会的。
为了能够跨不同平台和软件版本使用您的脚本,您应该避免使用这样的不合规标识符。

相关内容