`
- 浏览:
259626 次
- 性别:
- 来自:
未定
-
shell的内建命令exec将并不启动新的shell,而是用要被执行命令替换当前的shell进程,并且将老进程的环境清理掉,而且exec命令后的其它命令将不再执行。
因此,如果你在一个shell里面,执行exec ls那么,当列出了当前目录后,这个shell就自己退出了,因为这个shell进程已被替换为仅仅执行ls命令的一个进程,执行结束自然也就退出了。为了避免这个影响我们的使用,一般将exec命令放到一个shell脚本里面,用主脚本调用这个脚本,调用点处可以用bash a.sh,(a.sh就是存放该命令的脚本),这样会为a.sh建立一个sub shell去执行,当执行到exec后,该子脚本进程就被替换成了相应的exec的命令。
source命令或者".",不会为脚本新建shell,而只是将脚本包含的命令在当前shell执行。
不过,要注意一个例外,当exec命令来对文件描述符操作的时候,就不会替换shell,而且操作完成后,还会继续执行接下来的命令。
exec 3<&0:这个命令就是将操作符3也指向标准输入。
另外,这个命令还可以作为find命令的一个选项,如下所示:
(1)在当前目录下(包含子目录),查找所有txt文件并找出含有字符串"bin"的行
find ./ -name "*.txt" -exec grep "bin" {} \;
(2)在当前目录下(包含子目录),删除所有txt文件
find ./ -name "*.txt" -exec rm {} \;
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
"利用electron和nodejs开发的桌面截图工具,支持Windows、Mac、Linux,支持双屏幕" 这个标题揭示了我们讨论的是一个跨平台的桌面应用程序,它结合了Electron和Node.js的技术,实现了屏幕截图功能,并且能够处理多...
解决 exec: "gcc": executable file not found in %PATH%,被墙了,搭梯下的,解压后直接配置 %path% 路径即可,亲测可用。
### Linux下Fork与Exec使用的相关知识点 #### 一、引言 - **Fork的概念**: `fork()` 是 Unix/Linux 操作系统中最杰出的功能之一,它允许一个正在运行的进程创建一个新进程,这个新进程被称为子进程。子进程几乎是...
Exec=/path/to/eclipse/eclipse Terminal=false Icon=/path/to/eclipse/icon.xpm StartupNotify=true Categories=Development;IDE; MimeType=text/x-java;text/x-c++;text/x-python; ``` 确保将`/path/to/eclipse/...
在PHP编程中,有时我们需要执行Linux命令来完成特定任务,比如操作文件系统、查询系统信息等。PHP提供了几个内建函数来实现这一点,其中`exec`和`shell_exec`是两个常用的函数,它们都能执行系统命令,但它们的返回...
Backup Exec12.5 Linux平台下Oracle RAC备份详细配置步骤
Linux进程和线程编程(exec) 在Linux操作系统中,进程和线程编程是非常重要的概念,exec函数族是Linux中最基本的进程创建函数。exec函数族共有六种调用形式,都是以exec开头,后面的字母表示了用法上的区别。 ...
在Linux操作系统中,MPlayer是一款强大的开源媒体播放器,能够支持多种音频和视频格式。本文将详细介绍如何在CentOS 6.4上安装MPlayer,包括安装过程、配置以及使用帮助文档。 首先,确保系统已经更新到最新版本,...
Android下用Exec执行linux命令的源代码,还可以在应用中执行init.rc中服务,具体怎么执行服务的方法请见我博客的另一篇文章,上面有如何让Android应用启用init.rc中定义的服务的方法。
在IT领域,尤其是在数据管理和保护方面,Backup Exec是一款广受好评的数据备份与恢复解决方案,它不仅支持Windows平台,还能够跨平台对Linux环境下的Oracle数据库进行高效、安全的备份。本文将详细介绍在Linux平台上...
BACKUP EXEC是一款功能强大的备份和恢复软件,广泛应用于各种操作系统中,包括Windows、Linux和Unix等。本文将详细介绍如何在Linux/Unix系统中安装BACKUP EXEC的AGENT。 安装准备 在开始安装之前,需要准备以下...
1.exec函数族 exec 为 execute(执行),exec 函数族用来替换调用进程所执行的程序,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行,替换前后进程的 PID 不会改变。 exec函数族中包括6个...
1. **全面的数据保护**:它支持多种平台,如Windows、Linux、VMware ESXi和Hyper-V等,能够备份文件、文件夹、系统状态、数据库和应用程序数据。 2. **虚拟化环境备份**:对虚拟机进行备份和恢复,可以实现单独...
当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨)。...
在Linux操作系统中,进程执行是通过系统调用来完成的,其中`exec`函数族就是一组用于替换当前进程映像的函数。这些函数允许程序在不退出的情况下加载并执行新的程序。在本压缩包中,包含的`execl.c`和`helloexec.c`...
### 基于exec函数族分析Linux初始化进程运行环境的过程 #### 一、Linux内存管理简介 Linux操作系统采用了一种高效的虚拟内存管理机制,其中主要包括分页管理技术。这一技术的核心在于将物理内存划分为固定大小的块...
在Linux操作系统中,`exec`系列函数是一组用于替换当前进程映像的系统调用。这些函数允许程序在不创建新进程的情况下加载并执行新的可执行文件,从而改变进程的行为。`06_exec_linux_源码`这个压缩包显然包含了多个...
在操作系统领域,Linux环境下,`fork`、`exec`和`wait`是三个非常重要的系统调用,它们在进程管理中扮演着核心角色。本文将深入解析这些函数的工作原理及其在实际应用中的重要性。 首先,`fork()`函数是创建新进程...
下面的代码用于在c++函数里面调用shell,并且执行命令,取回命令执行结果。 #include #include #include #include int main() { const int SIZE = 64; const int MAX_RESPONSE_SIZE = 65535;...