文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

shell常用重定向方法介绍

2023-06-09 19:15

关注

这篇文章主要讲解了“shell常用重定向方法介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell常用重定向方法介绍”吧!

每个打开的文件都会被分配一个文件描述符.stdin (键盘), stdout (屏幕), 和 stderr (错误消息输出到屏幕上)的文件描述符分别是0, 1, 和 2. 对于正在打开的额外文件, 保留了描述符3到9.

文件描述符是文件系统为了跟踪这个打开的文件而分配给它的一个数字。

下面以实例说明

1,>的用法

代码如下:


[zhangy@localhost ~]$ echo "11111" > 1.txt
[zhangy@localhost ~]$ cat 1.txt
11111
[zhangy@localhost ~]$ echo "11111" 1> 1.txt    //这个用法和上面的用法是一样
[zhangy@localhost ~]$ cat 1.txt
11111
[zhangy@localhost ~]$ echo "22222" >1.txt
[zhangy@localhost ~]$ cat 1.txt
22222

这种用法我想大家都非常的熟悉,因为这是我经常会用到的。echo "11111" > 1.txt 时,>前面是有一个1的,是默认的。>重定向到文件时,会将文件清空,在写入。

代码如下:


[zhangy@localhost ~]$ > 1.txt 
[zhangy@localhost ~]$ :> 1.txt 

上面的这个例子,可以把1.txt文件中的内容清空,其实也很好理解,清空后,不输入内容当然为空了。

2,>>的用法

代码如下:


[zhangy@localhost ~]$ echo "2222" >> 2.txt
[zhangy@localhost ~]$ cat 2.txt
2222
[zhangy@localhost ~]$ echo "2222" >> 2.txt
[zhangy@localhost ~]$ cat 2.txt
2222
2222

从上面的这个例子我们可以看出,>>重定向到文件时,会将输出写到文件的结尾。这一点和>完全不同的。

3,0,1,2 到9,以及&

代码如下:


[zhangy@localhost ~]$ cat 1.txt
 333
 111
 222
 444
 [zhangy@localhost ~]$ grep "22" 0< 1.txt  //把1.txt中的内容读取出来
 222
 [zhangy@localhost ~]$ ls tank 2>> 1.txt   //将错误信息放到文件的结尾
 [zhangy@localhost ~]$ cat 1.txt
 333
 111
 222
 444
 ls: tank: 没有那个文件或目录                 //这个就是 2>> 1.txt产生的内容
 [zhangy@localhost ~]$ (ls tank ;pwd) &>1.txt   //将错误信息,以及输出内容放到1.txt文件中,&(stderr,stdout)
 [zhangy@localhost ~]$ cat 1.txt
 ls: tank: 没有那个文件或目录
 /home/zhangy

i>&j重定向文件描述符i 到 j.指向i文件的所有输出都发送到j中去. i和j呢是0-9这间的数字

代码如下:


[zhangy@localhost ~]$ ls tank 2>&1|egrep \* 1> 2.txt  //在这里我把错误信息重定向到了1,在这里1就会输出错误,根赋值差不多
[zhangy@localhost ~]$ cat 2.txt
ls: tank: 没有那个文件或目录

4,<>的用法
<这个符号是读取,>这个符号是输出,放在一起就打开并且读取,

代码如下:


[zhangy@localhost ~]$ echo 123546 > 2.txt
[zhangy@localhost ~]$ exec 4<> 2.txt     //打开2.txt并将内容读取到&4中
[zhangy@localhost ~]$ read -n 4 <&4      //从&4中读取4个字符
[zhangy@localhost ~]$ echo -n . >&4      //在向&4写入一个点
[zhangy@localhost ~]$ exec 4>&-          //关闭输出文件描述符4
[zhangy@localhost ~]$ cat 2.txt
1235.6

能过上面的这个例子,就可以很清楚了解<>他的作用

5,n<&-关闭输入文件描述符n         n>&关闭输出文件描述符n

代码如下:


[zhangy@localhost ~]$ ls tank          //会提示错误
ls: tank: 没有那个文件或目录
[zhangy@localhost ~]$ ls tank 2>&-     //我把错误关闭后,什么也不输出了

6,|管理命令

这个命令也是我们常用的,是典型的,把一个命令的输出,当作另一个命令的输入

代码如下:


[zhangy@localhost ~]$ echo tank | wc -w
 1

表示tank是一个输出,但它又是wc的输入,不然就不会有统计出现了。

感谢各位的阅读,以上就是“shell常用重定向方法介绍”的内容了,经过本文的学习后,相信大家对shell常用重定向方法介绍这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯