Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以'-';角色在bash中是别名吗?_Bash - Fatal编程技术网

可以'-';角色在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自己的文档都没有定义,在未来的版本中可能会发生更改。

这似乎是一个未记录的特性。这似乎是一个未记录的特性。