Shell 文件的输入输出

本节实现从文件输入,输出到文件。

准备数据文件data1.txt,其中内容为:xiaobuteach.com


1 输入位置

例1:从文件中读取内容

read -p "input name:" name < data1.txt

<与文件名之间空隔可有可无。

然后echo $name查看数据

img


2 输出位置

例2:往文件中写内容

echo $name > bak1.txt

>与文件名之间空格可有可无。

img

查看数据正确。


例3:将输出与错误写到不同文件

ll file1.txt file-error.txt 1> log.txt 2>err.txt

1>log.txt表示将正常内容写到log.txt文件

2>err.txt表示将错误内容写到err.txt文件

img

ll命令执行完后,并没有显示到显示器,而是输出到了文件。


例4:仅将错误写到文件。

ll file1.txt file-error.txt 2>err.txt

分析:错误写到文件,输出没有改变目的地,还是会在默认位置即硬件显示。

img


例5:将所有内容全部写到1个文件 all.txt

ll file1.txt file-error.txt &>err.txt

&>表示输出与错误全部写到后面指定位置。

img


例6:默认写入 > 是写入什么内容?

ll file1.txt file-error.txt >x.txt

img

不看文件内容,通过界面显示我们能得到文件内容的答案。


3 输出模式

> 表示覆盖文件;

>> 表示追加内容;

>! 表示强制覆盖,shell有参数设置覆盖是否提示,通过此操作符能忽略此参数设置。


4 小结

1)输入从文件中读取

输入命令 < 文件

2)输出到文件

命令 输出操作符 文件 [输出操作符 文件]
输出操作符 说明
> 等价于1> ,覆盖文件
1> 输出写入文件
2> 错误写入文件
&> 都写入文件
>> 追加
数字或& + >> 输出/错误相应的追加
>! 强制覆盖
数字或& + >> 输出/错误相应的强制覆盖

上述这些操作符称为重定向操作符。