• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >linux shell > shell常用重定向实例讲解

shell常用重定向实例讲解

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了shell重定向,linux shell 重定向,shell 重定向 时间,shell重定向到空,shell 输出重定向等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

每个打开的文件都会被分配一个文件描述符.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
</div>

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

上面的这个例子,可以把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
</div>

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

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
</div>

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: 没有那个文件或目录
</div>

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
</div>

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

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

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

6,|管理命令

这个命令也是我们常用的,是典型的,把一个命令的输出,当作另一个命令的输入
[zhangy@localhost ~]$ echo tank | wc -w
 1
</div>

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

</div>

您可能想查找下面的文章:

  • shell常用重定向实例讲解

相关文章

  • 实现core文件自动生成配置文件的方法
  • Shell 命令替换的两种方式
  • centos 设置定时任务执行指定脚本的方法
  • 分享shell编程中的几个小技巧
  • 详解 linux mysqldump 导出数据库、数据、表结构
  • linux下部署kodexplorer的方法
  • 在Shell中分割字符串的例子
  • 一个用了统计CPU 内存 硬盘 使用率的shell脚本
  • Git 常用命令整理
  • ubuntu使用root用户登录/切换root权限的实现

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Shell脚本之无限循环的两种方法
    • Shell脚本中判断变量为数字的3种方法
    • Linux Shell 常见的命令行格式简明总结
    • 编写你的shell其实很简单
    • Shell脚本case语句简明教程
    • Shell脚本实现批量替换文件内容
    • 自动生成linux网卡配置脚本分享
    • linux shell发送Email邮件的方法详解
    • Shell脚本中获取进程ID的方法
    • shell脚本实现实时检测文件变更

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有