可以'-';角色在bash中是别名吗?
我试图使可以'-';角色在bash中是别名吗?,bash,Bash,我试图使bash别名为“-”字符,但这不起作用,例如 % alias "-"=date bash: alias: -=: invalid option 这能做到吗?如果我们是这样的话,那么别名=date怎么样? `您可以有一个名为-的别名,如下所示: alias -- -=date 我不知道如何定义名为=的别名。您可以使用名为-的别名,如下所示: alias -- -=date 我不知道如何定义名为=的别名。您想要的行为取决于特定于shell的扩展;即使POSIX标准确实指定了别名行为
bash
别名为“-”字符,但这不起作用,例如
% alias "-"=date
bash: alias: -=: invalid option
这能做到吗?如果我们是这样的话,那么别名=date怎么样?
`您可以有一个名为
-
的别名,如下所示:
alias -- -=date
我不知道如何定义名为
=
的别名。您可以使用名为-
的别名,如下所示:
alias -- -=date
我不知道如何定义名为
=
的别名。您想要的行为取决于特定于shell的扩展;即使POSIX标准确实指定了别名行为(这只是实现XSI和用户可移植性扩展的shell的情况),也不要求允许的名称集包含-
或=
:
在shell命令语言中,仅由可移植字符集中的下划线、数字和字母以及下列任何字符组成的一种字:“!”、“%”、“、”、“@”
实现可能允许别名中的其他字符作为扩展名
也就是说,在bash中定义别名时,
--
可用于使后续参数不作为选项解析(每个条目#10):
bash实践中可用的另一个选项(在3.2.57(1)和4.3.46(1)上进行了测试,但POSIX标准不要求支持这些名称)是定义函数:
$ =() { date "$@"; }
$ -() { date "$@"; }
$ =
Sat Aug 13 18:12:37 CDT 2016
$ -
Sat Aug 13 18:12:08 CDT 2016
同样,这超出了POSIX所需的名称集:
函数定义命令的格式如下:
fname() compound-command[io-redirect ...]
函数名为fname应用程序应确保它是一个名称(参见IEEE Std 1003.1-2001第3.230节“名称”的基本定义卷)实现可能允许函数名中的其他字符作为扩展。实现应为函数和变量保留单独的名称空间
在shell命令语言中,仅由可移植字符集中的下划线、数字和字母组成的一种字。名称的第一个字符不是数字
…因此,POSIX和bash自己的文档都没有定义,在未来的版本中可能会发生更改。您想要的行为取决于特定于shell的扩展;即使POSIX标准确实指定了别名行为(这只是实现XSI和用户可移植性扩展的shell的情况),也不要求允许的名称集包含
-
或=
:
在shell命令语言中,仅由可移植字符集中的下划线、数字和字母以及下列任何字符组成的一种字:“!”、“%”、“、”、“@”
实现可能允许别名中的其他字符作为扩展名
也就是说,在bash中定义别名时,
--
可用于使后续参数不作为选项解析(每个条目#10):
bash实践中可用的另一个选项(在3.2.57(1)和4.3.46(1)上进行了测试,但POSIX标准不要求支持这些名称)是定义函数:
$ =() { date "$@"; }
$ -() { date "$@"; }
$ =
Sat Aug 13 18:12:37 CDT 2016
$ -
Sat Aug 13 18:12:08 CDT 2016
同样,这超出了POSIX所需的名称集:
函数定义命令的格式如下:
fname() compound-command[io-redirect ...]
函数名为fname应用程序应确保它是一个名称(参见IEEE Std 1003.1-2001第3.230节“名称”的基本定义卷)实现可能允许函数名中的其他字符作为扩展。实现应为函数和变量保留单独的名称空间
在shell命令语言中,仅由可移植字符集中的下划线、数字和字母组成的一种字。名称的第一个字符不是数字
…因此,POSIX和bash自己的文档都没有定义,在未来的版本中可能会发生更改。这似乎是一个未记录的特性。这似乎是一个未记录的特性。