Shell内置与杂项-command-exec / exec 🛠️ — 执行命令
作用
command 忽略 Shell 函数和别名,直接执行外部命令。exec 用指定命令替换当前 Shell 进程,不创建新子进程。两者都是 Shell 内置命令,用于控制命令执行方式。
command
command [选项] 命令 [参数...]
绕过别名和函数,直接执行外部命令。-v 显示命令路径;-p 使用默认 PATH 搜索。适用于脚本中需要确保执行的是系统命令而非别名或函数。
exec
exec [选项] 命令 [参数...]
用指定命令替换当前 Shell 进程,原 Shell 进程终止(不会返回)。exec < FILE 重定向当前 Shell 的标准输入;exec > FILE 重定向标准输出。常用于脚本中重定向所有后续输出,或在容器启动时替换 Shell 为主进程。
示例
command ls # 忽略别名直接执行 ls
command -v ls # 显示命令路径
command -p ls # 使用默认 PATH 查找 ls
exec bash # 用 bash 替换当前 Shell
exec zsh # 用 zsh 替换当前 Shell
exec < FILE.TXT # 重定向当前 Shell 标准输入
exec > OUTPUT.LOG 2>&1 # 重定向当前 Shell 全部输出到文件
来源: 菜鸟教程
🔗 相关文档
Shell内置与杂项-source | Shell内置与杂项-type | which-whereis