是否可以在 shell 函数名称中使用特殊字符?

是否可以在 shell 函数名称中使用特殊字符?

我必须在 shell 脚本中创建函数,该函数名称必须包含特殊字符。喜欢

     >()
      {
       echo $1 $2
      }

这里我的函数名称是>,如果可能的话我该如何给出,就像上面我尝试过的但它会通过错误

答案1

大多数 shell 限制函数名称仅包含不需要引号的字符,其中不包括>.

即使在少数允许作为函数名称的 shell 中>(我只知道 zsh),定义一个名为 called 的函数>也只有在作为命令调用时才有效>(这需要引用它,即运行\>or ">"or '>')。它不会改变重定向的工作方式。

常用的 shell 都无法配置脚本的后续部分执行重定向时会发生什么情况。如果您需要这类东西,shell 几乎不是一种足够灵活的语言。但可能有更好的方法来解决无论你想解决什么问题——并且很可能可以在 shell 脚本中解决这个问题。

答案2

>在 shell 中具有特殊含义,它是一个重定向运算符,请参阅联机帮助页:

[n]> file 将标准输出(或 n)重定向到文件。

函数名称只能包含字母(az 或 AZ)、数字(0-9)或下划线字符(_)。而且不能以数字开头。 (看功能 定义 命令姓名

相关内容