时间:2023-02-13来源:系统屋作者:zhijie
你应该可以看出我们前面的重定向操作都只是临时性的,即只对当前命令有效,那如何做到“永久”有效呢,比如在一个脚本中,你需要某一部分的命令的输出全部进行重定向,难道要让你在每个命令上面加上临时重定向的操作嘛,当然不需要,我们可以使用exec命令实现“永久”重定向。exec命令的作用是使用指定的命令替换当前的 Shell,及使用一个进程替换当前进程,或者指定新的重定向:
# 先开启一个子 Shell
$ zsh
# 使用exec替换当前进程的重定向,将标准输出重定向到一个文件
$ exec 1》somefile
# 后面你执行的命令的输出都将被重定向到文件中,直到你退出当前子shell,或取消exec的重定向(后面将告诉你怎么做)
$ ls
$ exit
$ cat somefile
5.创建输出文件描述符
默认在 Shell 中可以有9个打开的文件描述符,上面我们使用了也是它默认提供的0,1,2号文件描述符,另外我们还可以使用3-8的文件描述符,只是它们默认没有打开而已,你可以使用下面命令查看当前 Shell 进程中打开的文件描述符:
$ cd /dev/fd/;ls -Al
同样使用exec命令可以创建新的文件描述符:
$ zsh
$ exec 3》somefile
# 先进入目录,再查看,否则你可能不能得到正确的结果,然后再回到上一次的目录
$ cd /dev/fd/;ls -Al;cd -
# 注意下面的命令》与&之间不应该有空格,如果有空格则会出错
$ echo “this is test” 》&3
$ cat somefile
$ exit
2023-02-13
Linux系统创建RPM包的步骤2023-02-13
Linux系统MBR和GPT分区的区别2023-02-12
Linux菜鸟常用命令有哪些?在Linux系统中中断是可以共享的,这样就可以有多个设备同时响应一个中断,从而形成一个中断链表。甚至没有产生中断的程序也会变执行。本文就来教大家Linux系统处理共享中断的技巧。...
2023-02-12
Linux系统中Rhythmbox是一款好用的音乐播放器,但是不少用户使用Rhythmbox播放器的时候出现了中文的乱码,虽然音乐还是能够播放,但是界面不好看了。那么这个问题怎么解决呢?...
2023-02-12