1589

8 分钟

#Bash 的 exec 命令

exec [OPTION]... [CMD [ARG]...]

功能

将进程上下文替换为指定的程序,或重定向当前 shell。

类型

Bash 内置命令。

参数

  • OPTION 选项:
    • -a name - 将 NAME 作为 CMD 的第 0 个参数(伪造程序名)
    • -c - 情况环境变量后执行 CMD
    • -l - 在 CMD 的第 0 个参数开头添加一个 -(表示 login shell)
  • CMD - 要执行的命令;如果没有指定 CMD 则对当前 shell 进行重定向
  • ARG - 命令 CMD 的参数

#示例

替换进程

#!/usr/bin/bash

# 进行一些配置
source ./.venv/

# 将进程替换为 python
exec python main.py
  • 运行 python 时不会保留 bash 进程;节省资源

重定向

$ exec > log.txt            # 将当前 bash 的标准输出重定向到 log.txt
$ exec 2 > err.txt          # 将当前 bash 的标准错误重定向到 err.txt
$ echo Hello World          # 输出到 log.txt
$ echo Error > &2           # 输出到 err.txt

#手册

更新: 2026/3/29

作者: PlanC

创建: 2026/3/29