16-shell 输入输出流 重定向控制

 主文件

#! /bin/bash

#Shell 输入/输出流 重定向操作(将标准输入和输出从终端,重定向至目标文件)

:<<!
命令			说明
command > file		将输出重定向到 file,执行command然后将输出的内容存入file。
command < file		将输入重定向到 file,本来需要从键盘获取输入的命令会转移到文件读取内容。
command >> file		将输出以追加的方式(不删除文件原有的内容) 重定向到 file。
n > file		将文件描述符为 n 的文件重定向到 file。
n >> file		将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m			将输出文件 m 和 n 合并。
n <& m			将输入文件 m 和 n 合并。
<< tag			将开始标记 tag 和结束标记 tag 之间的内容作为输入。

需要注意的是文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。
!
echo -e "添加到原来的文件:"
date >> 15_test3
echo $(dirname $(readlink -f $0)) >> 15_test3 #将当前文件爱你路径写入文件
cat ./15_test3 #显示文件当中内容

echo -e "\n" $(wc < 15_test3 | awk '{print $1}') #显示文件行数
echo $(wc -l < 15_test3)

echo -e "\n重新载入文件内容"
who > 15_test3
cat ./15_test3

echo -e "\n其他文件导入文件内容"
cat < ./15_test1 > ./15_test3 #command 命令将 stdin 重定向到 15_test1,将 stdout 重定向到 15_test3。
cat ./15_test3


:<<!
Here Document将两个 delimiter 之间的内容(document) 作为输入传递给 command。

注意:
	结尾的delimiter 一定要顶格写,前面不能有任何字符,后面也不能有任何字符,包括空格和 tab 缩进。
开始的delimiter前后的空格会被忽略掉。
!
echo -e "\n"
#计算有所少行内容
wc -l << EOF
    I
    am
    a
    good
    boy.
EOF


# /dev/null 是一个特殊的文件,写入到它的内容都会被丢弃
:<<!
  &,表示重定向的目标不是一个文件,而是一个文件描述符,内置的文件描述符如下
	1 => stdout
	2 => stderr
	0 => stdin

 此处&>或者>&视作整体,分开没有单独的含义
!
# 如果希望屏蔽 stdout 和 stderr,可以这样写:
make > /dev/null 2>&1 #2>&1代表将stderr重定向到文件描述符为1的文件(即/dev/stdout)中

15_test1 文件

我的33
你的232312

15_test2 文件

asda33
fdczs
d232312

15_test3文件

#空文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值