jiazhengw 发表于 2004-11-10 11:31:26

请问:在命令前加上exec有什么作用?

如题。谢谢!!

jiazhengw 发表于 2004-11-10 16:00:54

唉,也没有人帮我。。。。。。

康奇 发表于 2004-11-10 16:49:21

这是我的大致理解:但恐怕表达不太清楚,还请高手指正。
exec是shell内建的命令,它将当前shell替换为一个特定命令,而不是开一个shell子进程。放在脚本中,脚本会被执行的命令代替,命令执行完毕后,脚本也立即退出,所以exec一般都要放在脚本最后。

你将以下两段脚本比较执行以下

#!/bin/bash
ls -l
ls -l


#!/bin/bash
exec ls -l
ls -l

jiazhengw 发表于 2004-11-10 17:13:54

多谢老大!你说的真对,我在shell 下一执行 exec ls -l ,执行完毕,shell就退出来了,的确是“它将当前shell替换为一个特定命令,而不是开一个shell子进程”。困了我好长时间的就只是总算解决了。非常感谢!!
建议加精华!!呵呵^_^

jiazhengw 发表于 2004-11-10 17:30:08

我找了一下man ,结合一下你讲的东西,觉得有一点要改一下,“它将当前shell替换为一个特定命令,而不是开一个shell子进程。放在脚本中,脚本会被执行的命令代替”这句应改为“它将当前进程的ID号替换为执行进程的ID号”,这样就能解释“它将当前shell替换为一个特定命令,而不是开一个shell子进程。放在脚本中,脚本会被执行的命令代替”了。

康奇 发表于 2004-11-10 17:48:12

对头 :-D

BOoRFGOnZ 发表于 2004-11-11 10:05:57

exec
执行command以代替当前进程,而不是创建一个新的进程.在打开,关闭或者拷贝文件描述符的时候exec也是很有用的. :mrgreen:
页: [1]
查看完整版本: 请问:在命令前加上exec有什么作用?