如果使用以下命令启动,此处的简单代码将在我的机器上按预期工作bash
:
function ⏰(){
date
}
⏰
其他人使用它会不会有问题,还是通用的?
我想知道,因为我现在从未在其他源代码中看到过这样的东西。
编辑:有无限的可能性,它可以用来快速区分功能角色,例如使用表情符号。
? 表示可以修改或删除文件的功能,? 表示正在进行的工作,? 表示交互式菜单...
我想我们应该为所有这些创建一个标准,但这似乎是一个有趣的想法。
也许约 5 个字符的随机行可以帮助我们更好地理解代码在做什么。(当然,我们需要学习如何阅读它们。)
更多编辑:我试一试。现在,如果我在编辑器(或cat myscript.sh|grep function
)中折叠所有功能,它们看起来像这样。geany
(与这里相比,我的 unicode 在或我的终端中看起来好多了。)
function ⬚_1(){
function ⬚⬚_2(){
function ⬚⬚⬚_?_D(){
function ⬚⬚⬚⬚_?_X(){
function ⬚⬚⬚⬚⬚_?_Y(){
function ⬚⬚⬚⬚⬚⬚_❓_P(){
function ⬚⬚⬚⬚_?_Z(){
function ⬚⬚⬚⬚⬚_❓_U(){
function ⬚⬚⬚⬚⬚_❓_O(){
我使用了一个奇怪的缩进 ⬚ 来显示函数之间的关系,并使用符号 ?/❓ 来清楚地区分它们的作用。(当然这些不是我真正的函数名,我只是在末尾放了一个随机的字母,但即使没有它们我们也可以清楚地看到它们之间的关系。)
对此有用的指导方针是“可移植操作系统接口”(POSIX),这是由大多数类 Unix 系统实现的一系列标准。将 shell 脚本限制为 POSIX 要求的功能通常是一个好主意,以确保它们可以跨不同的 shell 和平台使用。
根据“Shell 命令语言”中函数定义的 POSIX 规范:
按照“名称”定义的链接:
该字符集仅包含 U0000 和 U007E 之间的字符。
因此,像“⏰”(U23F0)这样的字符在符合 POSIX 的标识符中是无效的。
您的shell 可能会接受它们,但这并不能保证其他人也会接受。
为了能够跨不同平台和软件版本使用您的脚本,您应该避免使用这样的不合规标识符。