exec命令

作者: 飞奔的大虎 | 来源:发表于2021-07-06 11:49 被阅读0次

shell 中的 exec 两种用法:

1.exec 命令 ;命令代替shell程序,命令退出,shell 退出;比如 exec ls

2.exec 文件重定向,可以将文件的重定向就看为是shell程序的文件重定向 比如 exec 5</dev/null;exec 5<&-

=============================

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 {} \;

原文链接:https://blog.csdn.net/qq_31186123/article/details/82190776

相关文章

  • exec命令

    shell 中的 exec 两种用法: 1.exec 命令 ;命令代替shell程序,命令退出,shell 退出;...

  • exec和xgars的区别

    -exec的用法 注意:使用-exec命令时,命令会将所有匹配到的文件一起传递给-exec执行。但有些系统对能够传...

  • docker进入运行中的容器

    方式一: 使用 docker exec 命令 docker exec -it 容器id /bin/bash 如: ...

  • history | grep exec

    history | grep exec 查看历史命令里,包括exec关键字的

  • find 命令与 xargs

    前提 find 可以可 exec 结合执行命令,但是 exec 是要等 find 命令执行完成之后才对 find ...

  • 每日一个linux命令17-find之xargs篇

    使用exec可能存在的问题: 在使用find命令匹配的文件运行exec命令时,find命令会把匹配到的文件全部传递...

  • 代码审计——命令执行

    了解命令执行函数 system()passthru() 需回显示函数exec() shell_exec() ` `...

  • os/exec

    os/exec包是Golang中用于调用执行外部命令的库 exec.Command exec.Command()函...

  • Redis事务机制和缓存穿透、雪崩、击穿

    1、常用命令 MULTI与EXEC命令以 MULTI 开始一个事务,然后将多个命令入队到事务中, 最后由 EXEC...

  • redis的事物

    涉及到的相关命令 multi exec discard watch unwatch 1:multi,exec 对于...

网友评论

    本文标题:exec命令

    本文链接:https://www.haomeiwen.com/subject/hicgultx.html