shell exec命令疑问

shell的内建命令exec并不启动新的shell,而是用要被执行命令替换当前的shell进程,并且将老进程的环境清理掉,而且exec命令后的其它命令将不再执行。---from google

请问"exec命令后的其它命令将不再执行"这句话怎么理解?

shell#!/bin/bash
exec 0<$1 #不是应该在这里退出了吗,怎么还会继续执行read
while read line
do
 echo $line
done
阅读 4.2k
1 个回答

注意一个例外,当exec命令来对文件描述符操作的时候,就不会替换shell,而且操作完成后,还会继续执行接下来的命令。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进