Shell - 简明Shell入门09 - 重定向(Redirection)
2023-09-14 09:00:40 时间
示例脚本及注释
#!/bin/bash
pwd > 1.log # 输出重定向到指定文件
date 1> 1.log # “>”与“1>”作用相同;覆盖指定文件的原有内容
date >> 1.log # 追加内容到指定文件的末尾
echo "1.log: " `cat 1.log`
echo -e "one\ntwo\nthree" > 2.log
echo "Number of rows:" `wc -l < 2.log` # 输入重定向;统计2.log文件内容的行数
echo "2.log: " `cat 2.log`
echo -e "111\n222\n333" > 3.log
echo "3.log: " `cat 3.log`
wc -l < 3.log > 4.log # 同时重定向输入和输出,从3.log读取输入,然后将输出写入到4.log
echo "4.log - Number of rows:" `cat 4.log`
rm -rf 123 # 确保文件不存在
ls 123 2> 5.log # 错误重定向到指定文件
ls 123 2>> 5.log # 追加内容到指定文件的末尾
echo "5.log: " `cat 5.log`
ls 123 >> 6.log 2>&1 # 将stdout和stderr合并后重定向到指定文件
pwd >> 6.log 2>&1 # 将stdout和stderr合并后重定向到指定文件
echo "6.log: " `cat 6.log`
ls 123 2>> 7.log >> 8.log # 分别重定向到指定文件
pwd 2>> 7.log >> 8.log
echo "7.log: " `cat 7.log`
echo "8.log: " `cat 8.log`
pwd > /dev/null # 屏蔽stdout
ls /root > /dev/null 2>&1 # 屏蔽stdout和stderr
rm -rf [0-9].log
# Here Document
cat << !
abc
123
ABC
!
# 将两个delimiter(这里使用!符号)之间的内容(document) 作为输入传递给command
# ### 标准
# - 标准输入文件(stdin)的文件描述符为0,默认从stdin读取数据;
# - 标准输出文件(stdout)的文件描述符为1,默认向stdout输出数据;
# - 标准错误文件(stderr)的文件描述符为2,默认向stderr中写入错误信息;
#
#
# ### 输出重定向
# - “command > file”:标准输出(stdout)重定向到指定文件,覆盖指定文件的原有内容
# - “command >> file”:标准输出(stdout)重定向到指定文件,追加内容到指定文件的末尾
# - “>”与“1>”作用相同
#
#
# ### 输入重定向
# - “command < file”:从标准输入(stdin)获取内容重定向到从指定文件中获取内容
#
#
# ### 错误重定向
# - “command 2 > file”:标准错误(stderr)重定向到指定文件,覆盖指定文件的原有内容
# - “command 2 >> file”:标准错误(stderr)重定向到指定文件,追加内容到指定文件的末尾
#
#
# ### 合并重定向
# 将stdout和stderr合并后重定向到指定文件
# - “command > file 2>&1”:覆盖指定文件的原有内容
# - “command >> file 2>&1”:追加内容到指定文件的末尾
#
#
# ### Here Document
# - 特殊的重定向方式,用来将输入重定向到一个交互式Shell脚本
# - 作用是将两个delimiter之间的内容(document)作为输入传递给command
# - 开始的delimiter前后的空格会被忽略
# - 结尾的delimiter必须顶格写,前后不能有任何字符,包括空格和 tab 缩进
#
#
# ### “/dev/null”文件
# - 写入到“/dev/null”文件的内容都会被丢弃;
# - 也无法从该文件读取内容;
相关文章
- 02·Shell编程-变量
- shell:修改变更值[通俗易懂]
- shell脚本案例-目录判断
- linux的shell编程入门
- PHP执行Shell脚本或Bash脚本文件并返回命令输出详情
- shell脚本运行jar包获取参数_linux加载一个目录下的所有jar包
- shell脚本快速入门之—–shell脚本练习100例!!!
- shell 或运算_shell 变量运算
- 解决shell脚本中"source /etc/profile"重载配置文件不生效的问题
- 从零开始的异世界生信学习 linux部分 linux 基础---学习笔记-4 shell脚本编程
- 【Linux Shell】你知道bash shell和dash shell的区别吗?
- 客快物流大数据项目(七十一):impala-shell命令参数
- Shell 脚本的条件测试与比较
- Linux基础:使用shell在多服务器上批量操作
- shell–2–shell变量 定义变量 使用变量 只读变量 删除变量 变量类型 Shell字符串 shell函数详解程序员
- Shell脚本编程:使用shell打印九九乘法表详解程序员
- Linux(五)shell编程基础详解架构师
- hadoop入门:hadoop使用shell命令总结详解大数据
- shell用Linux写Shell脚本:有趣又实用(linuxwrite)
- Elvish Shell 速览
- 学习Linux:命令编辑器与Shell编程(linux命令编辑器与shell编程)
- Linux Shell编程:为初学者开启新世界(linux shell编程入门)
- Linux Shell循环:简单而有效的自动化利器(linux shell循环)
- 深入学习:Linux系统如何进入Shell操作界面?(linux进入shell)
- Linux下切换Shell的技巧:简单迅速!(linux切换shell)
- Shell实时监听Redis自动化解决方案(shell监听redis)
- 使用Shell脚本彻底清理Redis缓存(shell清理redis)
- Redis之路突破Shell篱笆(redis访问shell)
- 利用shell编程实现DOS风格的Linux命令行