不带参数的 exec 有什么作用?

Car*_*ame 3 shell exec

exec没有参数返回成功并且显然什么也不做。为什么?

ilk*_*chu 5

Bash 手册的说法是,语法exec

exec [-cl] [-a name] [command [arguments]]
Run Code Online (Sandbox Code Playgroud)

如果提供命令,它将替换 shell,而不创建新进程。

但,

如果未指定命令,则可以使用重定向来影响当前 shell 环境。

因此,exec如果命令行上没有任何其他内容,就没有要运行的命令,也没有要应用的重定向,因此无需执行任何操作。

但 egexec >> output.txt也没有实际参数exec,但它仍然将重定向应用于 shell。

这与 Zsh 和 POSIX 功能类似,尽管 POSIX 文本有点难以阅读。