Shell 重定向
一直没搞懂 &> 和 <& 是表示什么意思。 今天自己总结一下,希望自己能理解它的真正含义。
重定向标准输入输出,切记 “1” 和 “>”之间没有空格
$ echo "hello world" > file
$ cat < file
hello world
$ echo "hello world" > file
hello world
$ cat < file
$
&表示什么意思
重定向可以用i>&j命令,表示把文件标识符i重新定向到j,你可以把"&"理解为"取地址"
$ echo "hello world 1>&2" >& > file
$ cat < file
hello world >&
$
系统为每一个打开的文件指定一个文件标识符以便系统对文件进行跟踪,0对应stdin,1对应stdout, 2对应stderr。用复杂的例子说明一下更高级的用法:
$ echo 123456789 > file 把字符串写到文件filename中
$ cat file
123456789
$ exec 3<>file 把文件file打开,并指定文件标识符为3
$ read -n 4 <&3 从文件中读4个字符,句柄已经指到第四个字符末尾
$ echo -n . >&3 在第5个字符处写一个点,覆盖第5个字符,-n表示不换行
$ exec 3>&- 关闭文件标识符3
$ cat file
1234.6789
~$
现在cat filename文件的结果就成了 0123.56789
命令j<>filename表示把文件打开,并指明文件标识符为j
"&-"表示关闭文件标识符
有关关闭文件标识符的操作请参考下面
n<&- 关闭输入文件标识符n
<&-或<&- 关闭标准输入stdin
n>&- 关闭输出文件标识符n
>&-或>&- 关闭标准输出stdout
Shell 重定向的更多相关文章
- shell重定向调试信息
shell重定向调试信息 fulinux ******************************************************************************* ...
- shell重定向介绍及使用
我们在写脚本或用脚本时,往往会发现 > /dev/null 2>&1 这类的命令.之前都是简单的了解一下,并没有深度消化,直到自己写脚本时,不认真写成了2>&1 &g ...
- Shell重定向:2>&1
Shell重定向:2>&1 0 是一个文件描述符,表示标准输入(stdin) 1 是一个文件描述符,表示标准输出(stdout) 2 是一个文件描述符,表示标准错误(stderr) 重定 ...
- shell重定向输出的应用
shell重定向输出的应用 案例2:重定向输出的应用 2.1问题 本例要求编写一个脚本/root/out.sh,功能特性如下: 执行此脚本显示I love s ...
- shell 重定向以及文件描述符
1.对重定向的理解 Linux Shell 重定向分为两种,一种输入重定向,一种是输出重定向:从字面上理解,输入输出重定向就是「改变输入与输出的方向」的意思. 输入方向就是数据从哪里流向程序.标准输入 ...
- 18 shell 重定向以及文件描述符
1.对重定向的理解 2.硬件设备和文件描述符 文件描述符到底是什么 3.Linux Shell 输出重定向 4.Linux Shell 输入重定向 5.结合Linux文件描述符谈重定向 6.Shell ...
- Linux Shell 重定向与管道【转帖】
by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以 ...
- 遇到shell重定向的一个奇怪问题:'消失'的标准输入!
需求: 把找到的文件逐行输出,然后用rm在许可的情况下删除 前置准备: $ls rm.sh test1 test2 test3 test4 test5 test6 $cat rm.sh #! / ...
- Shell重定向文件描述符
#!/bin/bash 最近在看shell,各种困惑,不过解决困惑的感觉还是很不错的.废话少说,linux中使用文件描述符来标识每个文件对象.文件描述符为一个非负整数,可以唯一标识会话中打开 ...
- Shell重定向&>file、2>&1、1>&2的区别
shell上: 0表示标准输入 1表示标准输出 2表示标准错误输出 > 默认为标准输出重定向,与 1> 相同 2>&1 意思是把 标准错误输出 重定向到 标准输出. & ...
随机推荐
- Power of Three
Given an integer, write a function to determine if it is a power of three. Follow up:Could you do it ...
- Unity3D NGUI动态生成模糊背景图
先上效果. 制作原理:模糊的部分是用UITexture,前面是一个UISprite.用主摄像机渲染出一张纹理,把这张纹理模糊处理,把这张纹理赋值给UITexture. 脚本代码 using Unity ...
- git 入门操作
从已有的GIT仓库获取最新代码 git clone url 建立本地仓库,并提交至git-hub 生成ssh的公钥私钥对:ssh-keygen 必须把这两个文件放到当前用户目录的“.ssh”目录下才能 ...
- TFS二次开发系列:四、TFS二次开发WorkItem添加和修改、保存
WorkItemStore:表示跟踪与运行 Team Foundation Server的服务器的工作项客户端连接. A.添加工作项 1.首先获得某服务器的WorkItemStore. WorkIte ...
- iOS 状态栏隐藏显示
在 info.plist 文件中 配置 View controller-based status bar appearance 对应的值为 NO 这样可以使用 application 对象来设置 状态 ...
- 51nod1079(中国剩余定理)
题目链接: http://www.51nod.com/onlineJudge/user.html#!userId=21687 题意: 中文题诶~ 思路: 本题就是个中国剩余定理模板题,不过模拟也可以过 ...
- poj 2955 Brackets
题目链接:http://poj.org/problem?id=2955 思路:括号匹配问题,求出所给序列中最长的可以匹配的长度(中间可以存在不匹配的)例如[(])]有[()]符合条件,长度为4 dp[ ...
- Spring事务管理
Spring是SSH中的管理员,负责管理其它框架,协调各个部分的工作.今天一起学习一下Spring的事务管理.Spring的事务管理分为声明式跟编程式.声明式就是在Spring的配置文件中进行相关配置 ...
- NetApp 监控
http://support.ipmonitor.com/mibs/network-appliance-mib/tree.aspx http://www.360doc.com/content/10/1 ...
- Win10 UI入门窗口由默认500px to 320px
https://code.msdn.microsoft.com/Layout-for-windows-that-ba648e1c/ https://msdn.microsoft.com/library ...