来自 Bash 手册:
命令 [-pVv]命令[参数 ...]
运行带有参数的命令,忽略任何名为 command 的 shell 函数。仅执行 shell 内置命令或通过搜索 PATH 找到的命令。如果有一个名为 ls 的 shell 函数,在该函数内运行“command ls”将执行外部命令 ls 而不是递归调用该函数。-p 选项意味着使用 PATH 的默认值,保证找到所有标准实用程序。在这种情况下,如果找不到命令或发生错误,则返回状态为 127,否则为命令的退出状态。
手册是否解释了为什么在命令赋值或以赋值开头(对于环境变量)失败?
$ command aaa=1
aaa=1: command not found
$ command aaa=1 echo hello
aaa=1: command not found
Run Code Online (Sandbox Code Playgroud)
您混淆了 POSIX 所谓的“简单命令”,它是可选赋值、可选重定向和可选词(包括命令名称及其可选参数)的非空序列,以及 Bash 手册command
概要中使用的“命令”这里只是一个命令名称。
如果你真的想在这里使用赋值,你可以简单地运行:
aaa=1 command echo hello
Run Code Online (Sandbox Code Playgroud)
如果根本没有命令而只是一个赋值,那么使用该command
命令没有多大意义,因为首先没有内置命令或命令可以在 PATH 中搜索。
如果你真的只想用 设置一个变量command
,你可以使用
command typeset aaa=1
Run Code Online (Sandbox Code Playgroud)
或者
command declare aaa=1
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
164 次 |
最近记录: |