QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1473|回复: 6

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

[复制链接]
发表于 2004-11-10 11:31:26 | 显示全部楼层 |阅读模式
如题。谢谢!!
 楼主| 发表于 2004-11-10 16:00:54 | 显示全部楼层
唉,也没有人帮我。。。。。。
回复

使用道具 举报

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

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

[code:1]#!/bin/bash
ls -l
ls -l
[/code:1]

[code:1]#!/bin/bash
exec ls -l
ls -l
[/code:1]
回复

使用道具 举报

 楼主| 发表于 2004-11-10 17:13:54 | 显示全部楼层
多谢老大!你说的真对,我在shell 下一执行 exec ls -l ,执行完毕,shell就退出来了,的确是“它将当前shell替换为一个特定命令,而不是开一个shell子进程”。困了我好长时间的就只是总算解决了。非常感谢!!
建议加精华!!呵呵^_^
回复

使用道具 举报

 楼主| 发表于 2004-11-10 17:30:08 | 显示全部楼层
我找了一下man ,结合一下你讲的东西,觉得有一点要改一下,“它将当前shell替换为一个特定命令,而不是开一个shell子进程。放在脚本中,脚本会被执行的命令代替”这句应改为“它将当前进程的ID号替换为执行进程的ID号”,这样就能解释“它将当前shell替换为一个特定命令,而不是开一个shell子进程。放在脚本中,脚本会被执行的命令代替”了。
回复

使用道具 举报

发表于 2004-11-10 17:48:12 | 显示全部楼层
对头
回复

使用道具 举报

发表于 2004-11-11 10:05:57 | 显示全部楼层
exec [option][command]
执行command以代替当前进程,而不是创建一个新的进程.在打开,关闭或者拷贝文件描述符的时候exec也是很有用的.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-9-18 16:59 , Processed in 0.055650 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表