linux shell 编程笔记 - 文件重定向

在执行命令时,使用文件重定向,可以为命令指定标准输入、输出和错误。
1、 重定向标准输出
1)标准输出重定向到文件:
cb@Standalone14:~/Documents/shellT$ cat /etc/passwd | awk -F: '{print $1}' | sort  1>~/Documents/shellT/sort.out
    将用户文件内容传输给awk命令,取出第1列,再传输给sort命令进行排序,最终的输出写到sort.out文件中。(这时屏幕就不会看到标准输出)
2)标准输出重写向追加到文件:
cb@Standalone14:~/Documents/shellT$ echo "重定向实例,追加到文件中。" >> ~/Documents/shellT/myfile 
2、 重定向标准输入
1)重定向文件作为标准输入:
cb@Standalone14:~/Documents/shellT$ sort < ~/Documents/shellT/inputT
2)重定向操作符:Command << delimiter
delimiter通过被称秋“此处”文档。shell将分界符delimiter之后直到下一个同样的分界符之前的所有内容都作为输入。可以任意定义分界符delimiter,最常见的分界符:EOF、MAYDAY。
    实例:
cb@Standalone14:~/Documents/shellT$ cat >> ~/Documents/shellT/myfileT << MAYDAY
> 重定向操作符,shell分界符号的使用例子。
> 我可以继续输入,直到出现分界符为止。
> 在这里就来个分界符号。MAYDAY    #这一行的MAYDAY没有起效果,需要在单独一行才有效果。
> MAYDAY
3、 重定向标准错误
1)缺省情况:屏幕输出:
cb@Standalone14:~/Documents/shellT$ grep "hello" cbfilenoexist
grep: cbfilenoexist: No such file or directory
2)重定向标准错误到文件:
cb@Standalone14:~/Documents/shellT$ grep "hello" cbfilenoexist 2> ~/Documents/shellT/myfileT
4、 结合使用标准输出和标准错误
    先把命令输出重定向到文件,如果命令出现错误,则可以把错误重定向到文件中,方便跟踪错误。
$ cat account_qtr.doc account_end.doc 1>accounts.out 2>accounts.err
5、 合并标准输出和标准错误
    grep命令的标准输出被重定向到文件grep.out,标准错误也同样重定向到该文件中。
$ grep "standard"* > grep.out 2>&1
6、 使用文件描述符:
    在shell脚本中,可以通过exec命令来打开、关闭文件。
#!/bin/bash
# use exec command test
exec 4<&0 0<~/Documents/shellT/sort.out
read line1
read line2
exec 0<&4
echo $line1
echo $line2


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值