shell学习之重定向

今日跟弘哥聊天,截了一段年前写的东西给他,结果问了个关于重定向的东东,竟然没答上来,遂怀疑我是抄的,是可忍孰不可忍,把重定向又看了看,这下好好做一些笔记,别又忘了,哈哈!


首先需要了解下文件标示符,通常的标示符有10中(0——9),但是我们经常遇到的就是三种,0(stdin,标准输入)、1(stdout,标准输出)、2(stderr,标准错误输出)

在重定向中是用 < 来改变读进的数据信道(stdin),使之从指定的档案读进;用 > 来改变送出的数据信道(stdout, stderr),使之输出到指定的档案; 0 是 < 的默认值,因此 < 与 0<是一样的;同理,> 与 1> 是一样的。


> :如果文件存在,则清空文件将结果输出到文件中,如果不存在文件,则新建文件。

>>:表示将结果追加到文件中。


这里还要提一下

<<< :这个,只适用于shell脚本中,一行字符串进行读入。


cmd > file 把 stdout 重定向到 file 文件中;

cmd >> file 把 stdout 重定向到 file 文件中(追加);

cmd 1> fiel 把 stdout 重定向到 file 文件中;

cmd > file 2>&1 把 stdout 和 stderr 一起重定向到 file 文件中;

cmd 2> file 把 stderr 重定向到 file 文件中;

cmd 2>> file 把 stderr 重定向到 file 文件中(追加);

cmd >> file 2>&1 把 stderr 和 stderr 一起重定向到 file 文件中(追加);

cmd < file >file2      cmd 命令以 file 文件作为 stdin,以 file2 文件作为 stdout;

cat <>file 以读写的方式打开 file;

cmd < file cmd 命令以 file 文件作为 stdin;

cmd << delimiter Here document,从 stdin 中读入,直至遇到 delimiter 分界符。


>&n 使用系统调用 dup (2) 复制文件描述符 n 并把结果用作标准输出;

<&n 标准输入复制自文件描述符 n;

<&- 关闭标准输入(键盘);

>&- 关闭标准输出;

n<&- 表示将 n 号输入关闭;

n>&- 表示将 n 号输出关闭;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值