Shell 文件的输入输出
本节实现从文件输入,输出到文件。
准备数据文件data1.txt,其中内容为:xiaobuteach.com
1 输入位置
例1:从文件中读取内容
read -p "input name:" name < data1.txt
<与文件名之间空隔可有可无。
然后echo $name查看数据
2 输出位置
例2:往文件中写内容
echo $name > bak1.txt
>与文件名之间空格可有可无。
查看数据正确。
例3:将输出与错误写到不同文件
ll file1.txt file-error.txt 1> log.txt 2>err.txt
1>log.txt表示将正常内容写到log.txt文件
2>err.txt表示将错误内容写到err.txt文件
ll命令执行完后,并没有显示到显示器,而是输出到了文件。
例4:仅将错误写到文件。
ll file1.txt file-error.txt 2>err.txt
分析:错误写到文件,输出没有改变目的地,还是会在默认位置即硬件显示。
例5:将所有内容全部写到1个文件 all.txt
ll file1.txt file-error.txt &>err.txt
&>表示输出与错误全部写到后面指定位置。
例6:默认写入 > 是写入什么内容?
ll file1.txt file-error.txt >x.txt
不看文件内容,通过界面显示我们能得到文件内容的答案。
3 输出模式
> 表示覆盖文件;
>> 表示追加内容;
>! 表示强制覆盖,shell有参数设置覆盖是否提示,通过此操作符能忽略此参数设置。
4 小结
1)输入从文件中读取
输入命令 < 文件
2)输出到文件
命令 输出操作符 文件 [输出操作符 文件]
输出操作符 | 说明 |
---|---|
> | 等价于1> ,覆盖文件 |
1> | 输出写入文件 |
2> | 错误写入文件 |
&> | 都写入文件 |
>> | 追加 |
数字或& + >> | 输出/错误相应的追加 |
>! | 强制覆盖 |
数字或& + >> | 输出/错误相应的强制覆盖 |
上述这些操作符称为重定向操作符。