📜  Linux 中的 exec 命令和示例

📅  最后修改于: 2022-05-13 01:57:34.650000             🧑  作者: Mango

Linux 中的 exec 命令和示例

Linux 中的 exec命令用于从 bash 本身执行命令。此命令不会创建新进程,它只是用要执行的命令替换 bash。如果 exec 命令成功,则不会返回到调用进程。

句法:

exec [-cl] [-a name] [command [arguments]] [redirection ...]

选项:

  • c:用于在空环境下执行命令。
  • 名称:用于传递名称作为命令的第零个参数。
  • l:用于将破折号作为命令的第零个参数传递。

注意: exec命令不会创建新进程。当我们从终端运行 exec 命令时,正在进行的终端进程被作为 exec 命令的参数提供的命令替换。

exec 命令可以在两种模式下使用:



  • 使用命令作为参数执行:在第一种模式下,exec 尝试将其作为命令执行,将剩余的参数(如果有)传递给该命令并管理重定向(如果有)。

    示例 1:

    示例 2:

    exec 命令搜索$PATH变量中提到的路径以查找要执行的命令。如果未找到该命令,则 exec 命令以及 shell 会以错误方式退出。

  • Exec without a command:如果没有提供命令,重定向可以用来修改当前的shell环境。这很有用,因为它允许我们根据需要更改 shell 的文件描述符。与前一种情况不同,即使在 exec 命令之后该过程仍会继续,但现在根据重定向修改标准输入、输出和错误。

    例子:

    这里 exec 命令将 shell 的标准更改为 tmp 文件,因此在 exec 命令之后执行的所有命令都将其结果写入该文件。这是在没有任何命令的情况下使用 exec 的最常见方法之一。